wake-up-neo.net

Zeichnen eines Pfades mit einer Linie in OpenLayers mithilfe von JavaScript

Ich habe gesehen, wie die Beispiele hier zum Zeichnen einer Linie dargestellt wurden, aber die Beispiele zeigen nur, wie Sie dies mit der Maus tun, indem Sie darauf klicken.

Was ich tun möchte, ist die Linie manuell mit JavaScript zu zeichnen, wenn eine Liste der Längen- und Breitengrade angegeben wird.

Der Grund, warum ich nicht an der Quelle arbeiten kann, die im obigen Link angegeben ist, liegt darin, dass sie nur activate für das Feature aufrufen.

Hat jemand schon einmal programmatisch einen Pfad auf einer OpenLayers-Karte gezeichnet? 

Was ich tun möchte, ist genau das: http://openspace.ordnancesurvey.co.uk/openspace/example4.html , jedoch ohne OpenSpace.

31
Andreas Grech

Sie müssten das Objekt LineString verwenden

Hier ist ein Beispiel:

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]);

Angenommen, map ist Ihr Kartenobjekt und lon und lat sind Gleitkommawerte.

53
Drahcir

Diese Seite ist ein klassisches Beispiel einer Animation über Javascript mit Openlayers.

es verwendet eine Filterstrategie, um festzulegen, was zu welchem ​​Zeitpunkt angezeigt werden soll.

javascript ist vollständig verfügbar.

1
tony gil

Ich habe es selbst noch nie gemacht, aber ich weiß, dass OpenSteetMap es tut. Zum Beispiel:

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

Keine Ahnung, wie schwierig es wäre, ihren Code durchzuarbeiten.

0
RoToRa