2016-04-19 3 views
-1

Für mein Projekt möchte ich ein Textfeld mit den x-und y-Koordinaten füllen, wenn ich in die Karte klicken. Ich habe das auf meinem Bildschirm mit diesem diesem Standardcode angezeigt Koordinaten:erhalten Koordinaten als Variablen aus Openlayer 3 Karte

var mousePositionControl = new ol.control.MousePosition({ 
    className: 'custom-mouse-position', 
    target: document.getElementById('location'), 
    coordinateFormat: ol.coordinate.createStringXY(5), 
    undefinedHTML: ' ' 
    }); 

so dachte ich: wenn ich mousePositionControl als Variable für die x verwenden und y-Koordinate i dies erhalten in der Textbox. Also habe ich versucht, dies:

map.on('click', function() { 
document.getElementById("coördinates").value = mousePositionControl; 
}); 

aber das Ergebnis i in das Textfeld erhalten, ist dies: [object Object]

Kann mir jemand helfen mit diesem Problem?

+0

String Darstellung eines Objekts vom Typ 'ol.control.MousePosition' ist "[object Object]", so der Code tut genau das, was Sie es sind zu fragen zu tun . Der "Click" -Handler empfängt das "Ereignis" -Objekt, das bereits die Koordinaten des angeklickten Pixels enthält, so dass kein Steuerelement eingebunden werden muss. – kryger

+0

ist das Element 'location', das' x' und 'y' zeigt. Warum musst du 'x' und' y' zum zweiten Mal für das Element 'coordinates' verwenden? – Nurlan

+0

Als eine Randnotiz, "coördinates" und "coöperate" werden als "Koordinaten" und "kooperieren" in Englisch geschrieben. –

Antwort

-1

Ich habe es gerade selbst herausgefunden. Ich bat um das volle Element und streifte und ersetzte das, damit ich bekam, was ich bekam.

Der Code:

map.on('click', function() { 
    var show = document.getElementById("location").innerHTML; 
    var clean = show.replace('<div class="custom-mouse-position">', ""); 
    var clean_again = clean.replace('</div>', ""); 
    var split = clean_again.split(','); 
}); 
+0

Sie sollten HTML-Code nicht als Zeichenfolgen verarbeiten. Es ist nicht sauber und könnte mit einigen Browsern oder in zukünftigen Versionen ausfallen. Es wird empfohlen, stattdessen mit dem DOM zu arbeiten, um das gewünschte Element auszuwählen. –

-1
map.on('click', function(evt){ 
    document.getElementById('coördinates').innerHTML = evt.coordinate.join(", "); 
}); 
+1

Einige Kommentare, warum dies das Problem behebt, würden dies zu einer viel besseren Antwort machen – planetmaker