目前,我正在使用Mono4Droid實現地圖應用程序,並且我正在使用WebView呈現提供的地圖由我自己的tileserver。 我使用OpenLayers來顯示這張地圖,現在我想使用文本圖層來顯示一些自定義POI。 不幸的是,地圖使用90013投影:OpenLayers:自動將EPSG 4326座標從文本圖層轉換爲地圖投影(EPSG:900913)
map = new OpenLayers.Map ("map", {
controls:[
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.Permalink(),
new OpenLayers.Control.ScaleLine({geodesic: true}),
new OpenLayers.Control.Permalink('permalink'),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.Attribution()],
//maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
maxResolution: 156543.0339,
numZoomLevels: 19,
units: 'm',
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:900913")
});
所以,當我想顯示由TextLayer提供的Markes的,我在正確的格式使用的座標。以地圖爲中心很容易:
var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
map.setCenter (lonLat, zoom);
但是我怎麼能自動爲TextLayer做這個轉換?我想根據着名的EPSG4326將經緯度值寫入文本層數據文件(列lat long),而不是根據900913(我現在正在做的工作)的值。
有沒有辦法讓OpenLayers自動將文本圖層的座標轉換爲地圖中使用的格式?也許一個回調函數重寫像onShow?
感謝您的幫助! 否則,我將不得不翻譯我自己的經緯度值,並將計算值置於文本文件中,這會使性能受到影響......