Javascript geoJSON中的映射框标记未出现在IE9中
我有一个从本地geoJSON文件加载标记的地图。这在我测试过的所有浏览器(FF、Chrome、Safari、Opera、IE10、IE11)中都能正常工作,但在IE9中不行 我在地图中添加了一个没有geoJSON(黄色总线标记)的标记,它在IE9中显示得很好 以下是相关代码:Javascript geoJSON中的映射框标记未出现在IE9中,javascript,internet-explorer,internet-explorer-9,mapbox,geojson,Javascript,Internet Explorer,Internet Explorer 9,Mapbox,Geojson,我有一个从本地geoJSON文件加载标记的地图。这在我测试过的所有浏览器(FF、Chrome、Safari、Opera、IE10、IE11)中都能正常工作,但在IE9中不行 我在地图中添加了一个没有geoJSON(黄色总线标记)的标记,它在IE9中显示得很好 以下是相关代码: // set up mapbox var map = new L.mapbox.map('map', '########', { tileLayer: { detec
// 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);
您可以在以下位置看到一个工作示例:
以下是指向geoJSON文件的链接:
geoJSON本身似乎在为我验证,我在将geoJSON粘贴到时确实收到一个错误:“无效的geoJSON,数据不可JSON序列化。”
我想,为什么会发生这种错误,是因为在描述字段中有双引号,这些字段也用双引号括起来。如果将描述用单引号括起来,这可能会修复它(还需要将此字段中的其他单引号替换为双引号)。看起来它与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...
});
这是我发现的最接近的类似问题,但是由于单一的黄色总线标记正在渲染,我不认为这是IE9中的一个错误!我猜他们的网站一定有漏洞。只是在另一个浏览器中尝试了一下,果然没有验证。我将双引号改为单引号,现在可以验证了,但是标记仍然没有加载到IE9中。