Mapbox featureLayer赢得't显示

Mapbox featureLayer won't show

本文关键字:显示 featureLayer 赢得 Mapbox      更新时间:2023-09-26

所以,我有一个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()); });

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

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的正确值。

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

我相信我遇到了这个问题。一次偶然的机会,我不小心把镜头缩小了,看到我正在南极洲生成一个标记。反转lat/lng,一切都很好。