2015-01-11 16 views
5

を使用して右の座標にマーカーを配置し、場所の名前を取得し、地図上のマーカーを配置する検索機能を、実装することはできません。私は座標を取得することができますが、地図上にマーカーを追加したいときは、常に別の場所を取得しています。入力場所のマーカーはマップの実際の座標に配置されていません。は、私はOpenLayersを3に取り組んでいますOpenLayersを3

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() 

私ははっきりと解決のために楽しみにして、私の問題を説明している願っています:ここで

は、私が取り組んできたどのコードです。あなたの時間とサポートにとても感謝しています。

答えて

7

EPSG:4326、注文経度座標LATない緯度、経度。したがって、EPSG:4326をEPSG:3857変換に変更する必要があります。

ol.proj.transform([lon, lat], 'EPSG:4326', 'EPSG:3857') 
+0

ありませんが、まだ同じ問題、私はミュンヘンに入っています(実際の緯度/経度です:48.1372719、11.5754815)が、緯度/経度にマーカーを配置します11.557617187499996、-41.60722821271713 – Amir

+0

しかし、私は、ハードコーディングされた値を書き込む場合には、動作します。 ol.proj.transform([11.5754815、48.1372719]、 'EPSG:4326'、 'EPSG:3857')以下のよう – Amir

+6

たぶんあなたの経度、緯度の値は文字列です。 '+ lon'と' + lat'を使って数値に変換してから変換します。 – erilem

関連する問題