[英]Openlayers - Getting Incorrect LonLat while transform?
我試圖獲得一個點的Latitude
和Longitude
。 但是,在進行轉換時,它不會返回正確的LonLat
。 這是很大的數字,是不是lonlat
肯定的點。
我已經嘗試了一些解決方案,但沒有得到結果。 還有什么可能會失敗?
我嘗試過的JS代碼
map = createMap("deviceMap");
var fromProjection = new OpenLayers.Projection("EPSG:4326");
var toProjection = new OpenLayers.Projection("EPSG:900913");
map.events.register('click', map, function handleMapClick(e) {
lonLat = self.map.getLonLatFromViewPortPx(e.xy).
transform(map.getProjectionObject(), toProjection);
prompt("",lonLat);
});
終於得到答案
map.events.register('click', map, function handleMapClick(e) {
var toProjection = new OpenLayers.Projection("EPSG:4326");
var lonLat = map.getLonLatFromPixel(e.xy).
transform(map.getProjectionObject(), toProjection);
});
如果我沒看錯,您應該在變量lonLat中增加一個大數字。
OpenLayers中的“ LonLat”並不意味着它只是經度/緯度,請參閱此處的文檔:
lon {Number}以地圖單位表示的x軸坐標。 如果您的地圖在地理投影中,則為經度。 否則,它將是地圖單位中地圖位置的x坐標。
lat {Number}以地圖為單位的y軸坐標。 如果您的地圖在地理投影中,則為緯度。 否則,它將是地圖單位中地圖位置的y坐標。
因此,如果要獲取真實的LonLat坐標,則不應轉換(並使用EPSG:4326)或將其轉換為其他坐標系,而不是EPSG:900913。
順便說一下,OpenLayers開始使用900918(相當於GOOGlE的數字),由Christopher Schmidt先生定義,首先,它未被歐洲石油測量集團(EPSG)接受。 然后EPSG改變了主意,給了他們號碼:3857-WGS84偽墨卡托。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.