Ich bin eine Linie zu schaffen, die mit diesem Code bearbeitet werden können:Openlayers speichern eine Funktion
var line_points = Array();
var lineLayer = new OpenLayers.Layer.Vector(label);
this.map.addLayer(lineLayer);
this.map.addControl(new OpenLayers.Control.DrawFeature(lineLayer, OpenLayers.Handler.Path));
for (x in points) {
var point = points[x].split(',');
var lat = parseFloat(point[0]);
var lon = parseFloat(point[1]);
line_points[x] = new OpenLayers.Geometry.Point(this.Lon2Merc(lon), this.Lat2Merc(lat));
}
var line = new OpenLayers.Geometry.LineString(line_points);
var lineFeature = new OpenLayers.Feature.Vector(line, null, style);
lineLayer.addFeatures([lineFeature]);
Ich versuche, die Breiten- und Längengrade aus dieser Funktion zu ziehen, wenn ein Punkt bewegt wird oder geschaffen Aktualisieren Sie ein HTML-Formular, das dann zum Speichern dieser Daten verwendet wird. Ich habe von den Protokollen und dem Zeug gehört, denke aber, dass das nicht das Richtige für mich ist.
Könnte mir bitte jemand in die richtige Richtung zeigen?
EDIT: Ich habe versucht, immer die Details aus dem HTML-Code direkt:
var x = 0;
var y = 0;
$.each(document.getElementById("OpenLayers.Geometry.LineString_195").getAttribute("points").split(','), function(index, value) {
if(index%2){
y = value;
console.log(MercatorToLatLon(x,y).Lat + "," + MercatorToLatLon(x,y).Lon);
} else {
x = value;
}
//console.log(value);
});
aber dies scheint keine sinnvollen Werte zu geben, und in keiner bestimmten Reihenfolge, die ich seltsam finde.
bevor ich akzeptiere, ist es möglich, eine Funktion auszulösen, immer wenn sich die Geometrie ändert? – Josh
Sure sehe mein Update. Ich denke, Sie möchten vielleicht 'Feature geändert' – capdragon
Schöne Sachen! Prost. – Josh