создание векторного слоя с помощью 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);
, но, к сожалению, это не работает.
У тебя есть какие-нибудь догадки?
Спасибо
1 ответ:
Я использую шаги, описанные на следующей веб-странице, чтобы добавить данные формата GeoJSON в слой: http://thinkwhere.wordpress.com/2011/06/26/geocommons-geojson-in-openlayers/ Поскольку ваш GeoJSON уже имеет правильный формат, не добавляйте
{"type": "FeatureCollection", "features": ...}вокруг строки GeoJSON, как показано в этом примере.На простом английском языке шаги таковы:
- создайте новый слой
OpenLayers.Layer.Vectorбез параметров для чтения данных.- вы сами читаете URL-адрес.
- в вызываемой функции обратного вызова когда чтение завершено, вы создаете объект
OpenLayers.Format.GeoJSON(), используете его для чтения объектов из строки GeoJSON, а затем добавляете объекты в слой.
Comments