【问题标题】:How to transform a GWT OpenLayers VectorFeature?如何转换 GWT OpenLayers VectorFeature?
【发布时间】:2013-10-18 16:41:33
【问题描述】:

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

如何在 GWT 版本的 OpenLayers 中做同样的事情?

提前致谢。

【问题讨论】:

  • 您可以在Geometry对象上调用transfrom,该对象可以从每个VectorFeature获取。

标签: gwt transform openlayers projection gwt-openlayers


【解决方案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 类中以使转换工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    相关资源
    最近更新 更多