Ich arbeite an Openlayers 3 und möchte eine Suchfunktionalität implementieren, die einen Namen des Ortes erhält und einen Marker auf der Karte positioniert. Ich bin in der Lage, die Koordinaten zu bekommen, aber wenn ich seinen Marker auf der Karte hinzufügen will, bekomme ich immer verschiedene Orte dafür. Die Markierung des Eingabeplatzes wird nicht auf die tatsächlichen Koordinaten der Karte gesetzt. HierKann nicht mit Openlayern den Marker an den richtigen Koordinaten platzieren 3
ist der Code, an dem ich gearbeitet habe:
function addmarker(lat, long, pointerimgsrc){
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([lat, long], 'EPSG:4326', 'EPSG:3857')),
name: 'NULL'
});
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.75,
//src: 'data/icon.png'
src: pointerimgsrc
}))
});
iconFeature.setStyle(iconStyle);
vectorSource = new ol.source.Vector({
features: [iconFeature]
});
vectorLayer = new ol.layer.Vector({
source: vectorSource
});
map.addLayer(vectorLayer);
}// END addmarkerr()
Ich hoffe, ich habe klar mein Problem erklärt, freuen uns auf eine Lösung. Vielen Dank im Voraus für Ihre Zeit und Unterstützung.
Kein noch gleiches Problem, ich bin Eingabe München (tatsächliche Breite/Länge sind: 48,1372719, 11,5754815), aber es legt Marker an Breite/Länge: 11,557617187499996, -41,60722821271713 – Amir
Aber es funktioniert, wenn ich hart codierte Werte schreiben . Wie unten: ol.proj.transform ([11.5754815, 48.1372719], 'EPSG: 4326', 'EPSG: 3857') – Amir
Vielleicht sind Ihre lon, lat Werte Strings. Konvertiere sie mit '+ lon' und' + lat' in Zahlen, bevor du sie transformierst. – erilem