Mapbox featureLayer不会表现出来

时间:2015-03-22 02:35:48

标签: javascript mapbox

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

3 个答案:

答案 0 :(得分:0)

尝试使用layer.geoJSON(geojson);代替layer.setGeoJSON(geojson);

答案 1 :(得分:0)

我刚试过运行你的代码,它运行正常。我试过的代码是:

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());
});

确保您从latitude获得longitudeproperties和其他myArray的正确值。

答案 2 :(得分:0)

我相信我遇到了this problem。在一次侥幸中,我意外地缩小了,看到我在南极洲生成了一个标记。扭转了lat / lng,一切都很好。