2016-10-27 8 views
1

Я пытаюсь отобразить файл geojson на карте openlayers. Карточка openlayers уже работает, однако я не могу понять, как отображать функции из файла geojson. The example on their website, к сожалению, не очень полезно, так как это просто объект geojson, который записывается непосредственно в файл, а затем доступен позже. Я хочу использовать функции из отдельного файла geojson и отображать их на карте.Пытается отобразить GeoJSON на Openlayers 3

Это то, что я до сих пор, копируются непосредственно из примера:

var vectorSource = new ol.source.Vector({ 
    features: (new ol.format.GeoJSON()).readFeatures(geojsonObject) 
}); 

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

var map = new ol.Map({ 
    layers: [ 
     new ol.layer.Tile({ 
      source: new ol.source.OSM() 
     }), 
     vectorLayer 
    ], 
    target: 'map', 
    controls: ol.control.defaults({ 
     attributionOptions: /** @type {olx.control.AttributionOptions} */ ({ 
      collapsible: false 
     }) 
    }), 
    view: new ol.View({ 
     center: [0, 0], 
     zoom: 2 
    }) 

});

Что мне нужно знать, так как я могу «открыть» файл и получить функции из файла geojson (в настоящее время расположенного по адресу ..\public\geojson\federal_ridings.geojson) вместо переменной geojsonObject, которая уже существует?

ответ

1

Чтобы добавить слой GeoJSON из внешнего файла заменить:

var vectorSource = new ol.source.Vector({ 
    features: (new ol.format.GeoJSON()).readFeatures(geojsonObject) 
}); 

с

var vectorSource = new ol.source.Vector({ 
    url: '..\public\geojson\federal_ridings.geojson', 
    format: new ol.format.GeoJSON() 
}); 

ol.format.GeoJSON documentation

Убедитесь federal_ridings.geojson является valid JSON file

Demo