我有一张从本地geoJSON文件加载标记的地图。这在我测试的所有浏览器(FF,Chrome,Safari,Opera,IE10,IE11)中都能正常工作,但在IE9中却没有。
我在没有geoJSON(黄色总线标记)的情况下向地图添加了一个标记,它在IE9中显示正常。
以下是相关代码:
// set up mapbox
var map = new L.mapbox.map('map', '########', {
tileLayer: {
detectRetina: true,
minZoom: 2
},
zoomControl: false
});
// marker without geoJSON
L.marker([-37.9, -77], {
icon: L.mapbox.marker.icon({
'marker-size': 'large',
'marker-symbol': 'bus',
'marker-color': '#fa0'
})
}).addTo(map);
// markers with geoJSON
var geoJsonData = L.mapbox.featureLayer().loadURL('http://nomacorc.cuberishosting.com/wp-content/themes/nomacorc/map-lib/sellers-locations.php').addTo(map);
您可以在http://nomacorc.cuberishosting.com/purchase-test/找到一个有效的例子。
以下是geoJSON文件的链接:http://nomacorc.cuberishosting.com/wp-content/themes/nomacorc/map-lib/sellers-locations.php
geoJSON本身似乎在http://geojsonlint.com/
为我验证答案 0 :(得分:1)
看起来它与在loadURL函数中调用JSON的方式有关。我用AJAX拉出JSON来修复它:
// url to file with geojson data
var url = 'http://nomacorc.cuberishosting.com/wp-content/themes/nomacorc/map-lib/sellers-locations.php';
// load geojson file
$.getJSON(url, function(data) {
var featureMarkers = L.mapbox.featureLayer(data, {sanitizer: function(string) {return string;}});
// The rest of my code here...
});
答案 1 :(得分:0)
将geoJSON粘贴到http://geojsonlint.com/时出现错误:“无效的GeoJSON,数据不是JSON可序列化的。”
我猜这个错误发生的原因是你在描述字段中有双引号,它们也用双引号括起来。如果您将描述用单引号括起来,那可能会修复它(它还需要您用双引号替换此字段中的其他单引号)。