2016-11-17 10 views
-1

リーフレット0.7を使用していて、リーフレットプラグインを使用してスタティックラベルを追加したいとします。機能に関するラベル - ajaxコール

私はajax呼び出しでデータを取得します。私はどこに私のonEachFeature関数を配置してラベルを設定するのか分からない。私はjavascriptには比較的新しいですし、私はちょっと混乱していると思います。

このコードは、layer.bindLabel( 'static label')を使用している限り動作します。しかし、私はそれを私のajax呼び出しのデータで埋め込むことはできません。 レイヤーがajax呼び出しの前に作成されているため、データにアクセスできないことがわかりました。私のajax呼び出しのデータをLabelに取り込むコードをどうやって整えることができますか?

すべてのヘルプは大幅に編集

pointToLayer

で作成されたマーカーにあなたのラベルをバインドする必要が

var pointlayer= new L.GeoJSON(null, { 
    pointToLayer: function (feature, latlng) { 
     return L.marker(latlng, {icon: sandicon}); 
     }, 
     onEachFeature: function (feature, layer) { 
       layer.bindLabel(feature.properties.id, //Dynamic label 
        {noHide:true,direction:'auto'}); 
     }, 
    onEachFeature: function (feature, layer) { 
      layer.bindPopup('Test' + feature.properties.id); 
    } 
}).addTo(map); 

$.ajax({ 
    url: "url", 
    dataType: 'jsonp', 
    cache: false, 
    jsonpCallback: 'getPoint', 
    success: handlePoint, 

}); 

function handlePoint(data) { 
    pointlayer.addData(data); 

}; 

答えて

0

を高く評価されています。これは、私はあなたがどこに行ったかわからないエラー

ませんでした間違っていましたが、私は実際の例をここに残しました:

https://github.com/yafred/ajax-geojson-and-labels(ソース)

https://yafred.github.io/ajax-geojson-and-labels/(ウェブ)

注:L.GeoJSONはリーフレット1.0用で、L.GeoJsonは、リーフレットのためにお返事0.7

+0

感謝です!このような意味ですか?戻り値L.marker(latlng、{icon:sandicon})。bindLabel(feature.properties.gid、{noHide:true、direction: 'auto'});私はそれを試みたときにまだ運がありません。私は静的な文字列ラベルを追加することができます。あなたが考える財産には届かないからですか?私はちょうど何かエラーを取得していないと空のラベル – geogrow

+0

はいこれは私が意味したものです。私は例を設定しようとしています。 – YaFred

+0

私は答えを更新しました – YaFred