2012-10-27 102 views
1

我正在使用OpenLayers GWT。我想將GeoJSON形狀放置在Google Maps圖層上。我做了如下:如何轉換GWT OpenLayers VectorFeature?

String gson = "{here I put a valid GeoJSON string}"; 
GeoJSON geoJSON = new GeoJSON(); 
VectorFeature[] vf = geoJSON.read(gson); 
myShapeLayer.addFeature(vf[0]); 

形狀顯示在地圖上,但不是一個正確的位置。我想我必須將Vector轉換爲EPSG:900913,但我不知道如何使用VectorFeature來完成此操作。沒有使用轉換功能。 如何將轉換應用於GWT VectorFeature?

這個問題沒有得到答覆。我想解釋一下更好,我想知道:

在javascript中的OpenLayers,你可以這樣做:

var projWGS84 = new OpenLayers.Projection("EPSG:4326"); 
var proj900913 = new OpenLayers.Projection("EPSG:900913"); 

feature.geometry.transform(projWGS84, proj900913); 

我怎麼可以這樣做在的OpenLayers的GWT版本?

在此先感謝。

+0

您可以從每個VectorFeature獲取的'Geometry'對象調用'transfrom'。 – Braj

回答

1

OpenLayers-GWT缺少將使用選項參數的GeoJSON構造函數,必須將其添加到OpenLayers-GWT源代碼中。與此同時,這已被添加到KML Vector類。所以現在你可以這樣做:

String kmlString = "{<string with KML>}"; 
FormatOptions formatOptions = new FormatOptions(); 
formatOptions.setInternalProjection(new Projection("EPSG:900913")); 
formatOptions.setExternalProjection(new Projection("EPSG:4326")); 
KML kml = new KML(formatOptions); 

VectorFeature[] vf = KML.read(kmlString); 
myShapeLayer.addFeature(vf[0]); 

以同樣的方式,它應該被添加到GeoJSON的類,使改造的探討工作。