2016-05-25 5 views
0

Я использую этот код для загрузки данных из GeoJSON файла в эту MapBox карту:проблем при загрузке данных из файла GeoJSON на карту MapBox

var mapTooltips = L.mapbox.map('map-tooltips', 'mapbox.streets') 
    .setView([54.00366,-2.547855], 6); 

    var featureLayer = L.mapbox.featureLayer() 
    .loadURL('https://www.mapbox.com/mapbox.js/assets/data/stations.geojson') 
    .addTo(mapTooltips); 

Проблема:

Используя этот URL из MapBox как тест на карте совершенно

https://www.mapbox.com/mapbox.js/assets/data/stations.geojson

появляется маркеры Но когда я использую один и тот же файл, но с другого сервера, например:

https://s3.amazonaws.com/web-app-cdata/MapaFel/stations.geojson

Маркеры оленья кожа кажется, не работает.

Используя ссылку MapBox:

enter image description here

Используя ссылку S3:

enter image description here

Я хочу отметить, связь S3 имеют полный доступ. В теории может быть доступ к любому

Любые идеи?

ответ

1

По умолчанию вам не разрешено загружать ресурсы (например, файлы geojson) из внешних доменов. Это называется созданием cross-origin HTTP request.

Так что, когда MapBox-ГЛ пытается загрузить файл GeoJSON (jsfiddle) от экземпляра S3, есть ошибка:

XMLHttpRequest cannot load https://s3.amazonaws.com/web-app-cdata/MapaFel/stations.geojson . No 'Access-Control-Allow-Origin' header is present on the requested resource.

Вы можете загрузить же формат GeoJSON с серверов MapBox, поскольку MapBox имеют явно разрешенные такие запросы поперечного происхождения, путем указания заголовка ответа: Access-Control-Allow-Origin: *

As explained here:

"The server responds with a Access-Control-Allow-Origin: * which means that the resource can be accessed by any domain in a cross-site manner. "

Смежные вопросы