2015-07-20 6 views
2

Я пытаюсь нарисовать некоторые простые фигуры (в основном линии) на карте Open Street с использованием OpenLayers 3. Используемый мной код почти непосредственно скопирован с example на их сайте, но это не работает для меня.OpenLayers не может нарисовать geoJSON на карте

var vectorSource = new ol.source.Vector({ 
    features: (new ol.format.GeoJSON()).readFeatures(arr[i].geoJSON) 
}); 

var vectorLayer = new ol.layer.Vector({ 
    source: vectorSource, 
    style: styleFunction 
}); 

map.addLayer(vectorLayer); 

Где styleFunction это те же функции, как и в примере, и arr[i].geoJSON является вполне допустимым объектом GeoJSON.

Проблема в том, что она ничего не рисует. Что я делаю не так?

+1

Похоже, вам нужно создать JSFiddle показывая проблему, чтобы позволить другим исследовать. – kryger

+0

Не забывайте, что координаты на вашем geojson должны быть в EPSG: 3857, и эта проекция должна быть определена в вашем json, как в примере. В противном случае вы можете указать опции в объекте формата для перепрограммирования данных, см. Api: http://openlayers.org/en/master/apidoc/ol.format.GeoJSON.html. – oterral

ответ

1

Возможно, вам необходимо предоставить параметры метода readFeatures. проекция GeoJSON обычно с использованием 4326 в то время как большинство веб-карты, как правило, в 3857.

Try позвонить:

(new ol.format.GeoJSON()).readFeatures(arr[i].geoJSON,{ 
    featureProjection:"EPSG:3857" 
}); 
Смежные вопросы