Leafletjs - GeoJSON图层没有显示

时间:2015-12-30 10:35:31

标签: javascript leaflet geojson

我创建了一个代码的jsfiddle,我不知道为什么标记没有显示。

var map = L.map('map', {
    center: [8.99665, 38.81573],
    zoom: 13,
}); 

var addis = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        id: 'addis',
        attribution: '&copy; <a  href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}).addTo(map);

var aa = {
    "type": "Feature",
    "properties": {
        "name": "Megenagna",
    },
    "geometry": {
        "type": "Point",
        "coordinates": [9.019720, 38.802933]
    }
};

new L.GeoJSON(aa).addTo(map);

以下是jsfiddle网址:http://jsfiddle.net/m2ju1m3v/

拜托,有人可以对此有所了解吗? 谢谢!

2 个答案:

答案 0 :(得分:5)

GeoJSON中的坐标被指定为[longitude, latitude]形式的数组,与Leaflet相反,它是[latitude, longitude]

所以你应该简单地将坐标改为:

"coordinates": [38.802933, 9.019720]

更新了jsfiddle:http://jsfiddle.net/m2ju1m3v/2/

注意:请使用Leaflet版本0.7.7而不是0.6.4。

答案 1 :(得分:1)

实际上,添加了标记,但它位于Sardina(意大利)的南部。这是因为GeosJON坐标顺序:第一个longitude,第二个latitude

为什么使用GeoJSON添加标签?您可以使用marker方法来实现它:

new L.marker([8.99665, 38.81573]).addTo(map);