【问题标题】:Mapbox featureLayer won't showMapbox featureLayer 不会显示
【发布时间】:2026-02-18 00:05:01
【问题描述】:

所以,我有一个 Mapbox 地图,我正在循环一个数组以生成 geojson 对象数组。我有一些我已经抽象出来的方法——我已经测试了所有的东西并且一切正常,但是我的标记没有显示出来。我做错了什么?

var map = L.mapbox.map('map', 'my_map_code_thing'); var geojson = [];

var layer = L.mapbox.featureLayer().addTo(map);

for (i = 0; i < myArray.length; i++) { var marker = { "type": "Feature", "geometry": { "coordinates": [ myArray[i].latitude, myArray[i].longitude ], "type": "Point" }, "properties": { "title": myArray[i].title, "address": myArray[i].address, "marker-color": getColor(myArray[i].price_low), "marker-size": "medium", "marker-symbol": getSymbol(myArray[i].genre) } } geojson.push(marker); }; layer.setGeoJSON(geojson); layer.on('ready', function() { map.fitBounds(layer.getBounds()); });

【问题讨论】:

    标签: javascript mapbox


    【解决方案1】:

    我刚刚尝试运行您的代码,它运行良好。我试过的代码是:

    var map = L.mapbox.map('map', 'my_map_code_thing');
    var layer = L.mapbox.featureLayer().addTo(map);
    var myArray= [
    {
        "latitude": -77.03238901390978,
        "longitude": 38.913188059745586
    },
    {
        "latitude": -122.414,
        "longitude": 37.776
    }
    ];
    var geojson = [];
    for(var i = 0; i < myArray.length; i++) {
    
    var marker = {
    "type": "Feature",
    "geometry": {
      "type": "Point",
      "coordinates": [
      myArray[i].latitude,
      myArray[i].longitude
      ]
    },
    "properties": {
      "title": "Mapbox DC",
      "description": "1714 14th St NW, Washington DC",
      "marker-color": "#fc4353",
      "marker-size": "large",
      "marker-symbol": "monument"
    }
    }
    geojson.push(marker);
    }
    
    layer.setGeoJSON(geojson);
    layer.on('ready', function() {
     map.fitBounds(layer.getBounds());
    });
    

    只需确保您从myArray 获得正确的latitudelongitude 和其他properties 值。

    【讨论】:

      【解决方案2】:

      尝试layer.geoJSON(geojson); 而不是layer.setGeoJSON(geojson);

      【讨论】:

      • 嗯...没有骰子。它给了我:Uncaught TypeError: undefined is not a function
      【解决方案3】:

      我相信我遇到了this problem。侥幸我不小心缩小了视野,发现我正在南极洲生成一个标记。颠倒纬度/经度,一切都很好。

      【讨论】: