0

リーフレットを使用して、ユーザーが送信したポイントとポリゴンを表示し、ポリゴン内に送信されたポイントの数を表示しています。

システム アナリストと協力して、ポリゴンの 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);
4

1 に答える 1

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
    });
于 2013-03-27T19:59:47.217 に答える