1

我正在使用 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);

我怎样才能在 OpenLayers 的 GWT 版本中做同样的事情?

提前致谢。

4

1 回答 1

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 类中以使转换工作。

于 2012-11-10T22:26:06.763 回答