从服务中读取geoJSON

时间:2013-03-27 19:36:22

标签: json leaflet

我正在使用传单显示用户提交的点和多边形,以显示在多边形内提交的点数。

我和我们的系统分析师一起工作,他创建了一个服务,它会给我一个多边形的json对象。这是我到目前为止,我可以访问数据并将其记录到控制台,但地图上没有显示任何内容

var testAreas = [];
$.getJSON("http://server/WildlifeServices/WildlifeMapStats.ashx",
    function(data){
        console.log(data);
        $.each(data.features,function(i,item){
            console.log(item.geometry.coordinates[0]);
            testAreas.push(L.MultiPolygon(item.geometry.coordinates[0]))
        });
    });
areaGroup = L.layerGroup(testAreas);

1 个答案:

答案 0 :(得分:1)

$.getJSON()是异步的,这意味着脚本的执行将继续通过对getJSON的调用,并且稍后将在geoJSON加载时调用成功处理程序。你的代码行:

areaGroup = L.layerGroup(testAreas);

在加载JSON之前执行。尝试将该行(以及依赖于该行的任何其他行)放入成功处理程序中:

var testAreas = [];
$.getJSON("http://server/WildlifeServices/WildlifeMapStats.ashx",
    function(data){
        console.log(data);
        $.each(data.features,function(i,item){
            console.log(item.geometry.coordinates[0]);
            testAreas.push(L.MultiPolygon(item.geometry.coordinates[0]))
        });
        areaGroup = L.layerGroup(testAreas);
        //additional leaflet related code here
    });