31 votes

Dessiner un chemin avec une ligne dans OpenLayers en utilisant JavaScript

J'ai vu les exemples présentés ici de façon à tracer une ligne, mais les exemples montrent comment le faire avec la souris, en cliquant sur.

Ce que je veux faire est de tracer la ligne manuellement à l'aide de JavaScript donné une liste de coordonnées (Longitude et Latitude.

La raison pour laquelle je ne peut pas travailler sur la source fournie dans le lien ci-dessus est parce qu'ils sont seulement appelant activate sur la fonctionnalité, puis permettre à l'utilisateur de pointer et de cliquer sur la carte.

Quelqu'un a dessiné un chemin sur une carte OpenLayers par programmation?

Ce que je veux faire, c'est exactement cela: http://openspace.ordnancesurvey.co.uk/openspace/example4.htmlmais sans l'aide de OpenSpace.

53voto

Drahcir Points 2829

Vous devez utiliser l'objet LineString

Voici un exemple:

 var lineLayer = new OpenLayers.Layer.Vector("Line Layer"); 

map.addLayer(lineLayer);                    
map.addControl(new OpenLayers.Control.DrawFeature(lineLayer, OpenLayers.Handler.Path));                                     
var points = new Array(
   new OpenLayers.Geometry.Point(lon1, lat1),
   new OpenLayers.Geometry.Point(lon2, lat2)
);

var line = new OpenLayers.Geometry.LineString(points);

var style = { 
  strokeColor: '#0000ff', 
  strokeOpacity: 0.5,
  strokeWidth: 5
};

var lineFeature = new OpenLayers.Feature.Vector(line, null, style);
lineLayer.addFeatures([lineFeature]);
 

En supposant que map est votre objet de carte et lon et lat sont des valeurs flottantes.

1voto

tony gil Points 2966

cette page est un exemple classique d'animation via javascript utilisant des openlayers.

il utilise une stratégie de filtrage pour définir ce qui doit être affiché à quel moment.

javascript complet disponible.

0voto

RoToRa Points 20081

Je ne l'ai jamais fait moi-même auparavant, mais je sais que OpenSteetMap le fait. Par exemple:

http://www.openstreetmap.org/?way=23649627

Aucune idée de la difficulté de travailler avec leur code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X