Как преобразовать векторную функцию GWT OpenLayers?

Я использую OpenLayers GWT. Я хочу поместить фигуру GeoJSON поверх слоя Google Maps. Я сделал следующее:

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?

Заранее спасибо.


person Dawied    schedule 27.10.2012    source источник
comment
Вы можете вызвать transfrom для Geometry объекта, который можно получить из каждого VectorFeature.   -  person Braj    schedule 11.11.2016


Ответы (1)


В OpenLayers-GWT отсутствует конструктор GeoJSON, который будет принимать параметр options, его необходимо добавить в исходный код 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, чтобы трансформация заработала.

person Dawied    schedule 10.11.2012