Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript geoJSON中的映射框标记未出现在IE9中_Javascript_Internet Explorer_Internet Explorer 9_Mapbox_Geojson - Fatal编程技术网

Javascript 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

我有一个从本地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);
您可以在以下位置看到一个工作示例:

以下是指向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中。