来自geoJSON的Mapbox标记未出现在IE9中

时间:2014-09-12 14:15:17

标签: 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: {
            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/

为我验证

2 个答案:

答案 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可序列化的。”

我猜这个错误发生的原因是你在描述字段中有双引号,它们也用双引号括起来。如果您将描述用单引号括起来,那可能会修复它(它还需要您用双引号替换此字段中的其他单引号)。