我正在使用OpenLayers GWT。我想在Google Maps图层上放置一个GeoJSON形状。我做了如下:
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);
如何在GWL版本的OpenLayers中做同样的事情?
提前致谢。
答案 0 :(得分:1)
OpenLayers-GWT缺少将采用options参数的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类中以使转换起作用。