создание векторного слоя с помощью geoJson в openlayer



Я использовал, чтобы сделать вектор GML следующим образом:



layer = new OpenLayers.Layer.GML("based",
"./parser2.php",
{
isBaseLayer: true,
format: OpenLayers.Format.GeoJSON,
styleMap: new OpenLayers.StyleMap(mystyle),
units:"m",
maxResolution: 0.2,
minResolution: 0.01
})

map.addLayer(layer);


Но теперь обесценивается для множественного резона мне нужно использовать OpenLayers.Слой.Вектор, но я не могу успешно прочитать файл geoJon.
Я попробовал так:



   var test = new OpenLayers.Layer.Vector("test", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
isBaseLayer: true,
url: "data.json",
styleMap: myStyles,
format: new OpenLayers.Format.JSON()
})
});
map.addLayer(test);


, но, к сожалению, это не работает.



У тебя есть какие-нибудь догадки?



Спасибо

575   1  

1 ответ:

Я использую шаги, описанные на следующей веб-странице, чтобы добавить данные формата GeoJSON в слой: http://thinkwhere.wordpress.com/2011/06/26/geocommons-geojson-in-openlayers/ Поскольку ваш GeoJSON уже имеет правильный формат, не добавляйте {"type": "FeatureCollection", "features": ...} вокруг строки GeoJSON, как показано в этом примере.

На простом английском языке шаги таковы:

  1. создайте новый слой OpenLayers.Layer.Vector без параметров для чтения данных.
  2. вы сами читаете URL-адрес.
  3. в вызываемой функции обратного вызова когда чтение завершено, вы создаете объект OpenLayers.Format.GeoJSON(), используете его для чтения объектов из строки GeoJSON, а затем добавляете объекты в слой.

Comments

    Ничего не найдено.