1

OpenLayers GWT を使用しています。Google マップ レイヤーの上に GeoJSON シェイプを配置したいと考えています。私は次のようにしました:

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

形状は地図上に表示されていますが、正しい位置ではありません。ベクターを 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ソースに追加する必要があります。その間に、これはKMLVectorクラスに追加されました。だから今あなたはこのようにすることができます:

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 に答える