J'ai vu les exemples présentés ici de la manière de tracer une ligne, mais les exemples montrent uniquement comment le faire avec la souris, en cliquant sur.
Ce que je veux faire, c'est dessiner la ligne manuellement à l'aide de JavaScript, à partir d'une liste de coordonnées de longitude et de latitude.
La raison pour laquelle je ne peux pas travailler sur la source indiquée dans le lien ci-dessus, c'est parce qu'ils appellent uniquement activate
sur la fonctionnalité, puis laissez l'utilisateur pointer et cliquer sur la carte.
Quelqu'un a-t-il déjà tracé un chemin sur une carte OpenLayers par programmation?
Ce que je veux faire est exactement ceci: http://openspace.ordnancesurvey.co.uk/openspace/example4.html , mais sans utiliser OpenSpace.
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 cartographique et que lon
et lat
soient des valeurs flottantes.
cette page est un exemple classique d’animation via javascript avec des openlayers.
il utilise une stratégie de filtrage pour définir ce qu’il faut montrer à quel moment dans le temps.
javascript complet disponible.
Je ne l'ai jamais fait moi-même auparavant, mais je sais qu'OpenSteetMap le fait. Par exemple:
http://www.openstreetmap.org/?way=23649627
Aucune idée de la difficulté de travailler avec leur code.