8

私の django Web アプリは次のことを行う必要があります: Geojson オブジェクトをビューに渡し、リーフレットでポイントをマッピングし、ユーザーがポイント マーカーをクリックしたときに追加情報を表示します。私は js にあまり詳しくないので、適切な種類のデータをclickイベントにバインドするのに行き詰まりました。サンプルの geojson オブジェクトを次に示します。clickイベントで「id」にアクセスするにはどうすればよいですか?

var geojsonFeature = {'geometry':
                          {'type': 'MultiPoint', 
                          'coordinates': [[4.939, 52.33], [4.9409, 52.33]]
                          }, 
                     'type': 'Feature', 
                     'properties': 
                        {'id': '52','popupContent': 'id=52'}
                     };

geojson オブジェクトをマップに追加します。

var gj = L.geoJson(geojsonFeature, {
    pointToLayer: function (feature, latlng) {
    return L.circleMarker(latlng, geojsonMarkerOptions);
    }}).addTo(map);

そしてon()-クリック....

gj.on('click', function(evt) {
   alert(id) // well, this is where I need help
});

bindPopup(feature.properties.popupContent)注:データベースからの追加データを使用して別のdjangoビューを呼び出す新しいウィンドウを開きたいので、次のようなものは使用したくありません。

4

2 に答える 2

2

上記の解決策を試してもうまくいかなかった後、このバージョンが機能するようになりました。

function onEachFeature(feature, layer) {
    layer.on('click', function (e) {
        alert(e.target.feature.properties.popupContent);
        //or
        alert(e.target.feature.properties.id);
    });
}
于 2015-01-07T16:57:05.157 に答える