Daha çox

Vərəqədə GeoJSON nöqtə xüsusiyyətinə yaxınlaşdırın


Veb Xəritəçəkmə ilə nisbətən yeni tanışam və Angular JS və angular-broşura-direktivi ilə litte Tətbiqi inkişaf etdirməyə çalışıram. Bu tətbiqdə bir ekskursiyanın müxtəlif stansiyalarını təmsil edən bir GeoJSON nöqtə təbəqəsi ilə işləyəcəyəm. Nə etmək istədiyim bir düyməyə sahib olmaq və üzərinə vurduğunuzda müəyyən bir nöqtəyə / markerə yaxınlaşdırmaqdır.

Artıq bu nümunəni görmüşəm və çox poliqon əvəzinə bir GeoJSON nöqtə təbəqəsi üçün funksionallığı çoxaltmağa çalışırdım.

Nümunə kodundakı xüsusi funksionallıq:

$ scale.centerJSON = function () {leafletData.getMap (). then (function (map) {var latlngs = []; for (var i in $ kapsamında.geojson.data.features [0] .geometry.coordinates) { var coord = $ kapsam.geojson.data.feature [0] .geometry.coordinates [i]; for (var j in coord) {var points = coord [j]; for (var k in points) {latlngs.push ( L.GeoJSON.coordsToLatLng (nöqtələr [k]));}}} map.fitBounds (latlngs);}); };

İndi kodum:

$ scale.centerPoint = function () {leafletData.getMap (). then (function (map) {var lalo = []; console.log (lalo); var coord = $ kapsam.geojson.data.features [0). geometriya.coordinates; console.log (coord); lalo.push (L.GeoJSON.coordsToLatLng (coord)); console.log (lalo); map.setView (lalo, 18);}); };

bu firebug konsolunda aşağıdakı səhv verir:

Sizdən kimsə setView metodunun LatLng obyektimi niyə sevmədiyini bilirmi? Aşağıdakı kimi bir LatLng obyektini əl ilə doldursam, yaxşı işləyir:

map.setView (yeni L.LatLng (51.4, 7.4), 15);

GeoJSON'um buna bənzəyir və test məqsədləri üçün yalnız bir nöqtəsi var:

{"type": "FeatureCollection", "features": [{"type": "Feature", "properties": {"id": 5}, "geometry": {"type": "Point", "coordinates ": [7.483522475876038, 51.487886145585634]}}]}

Kodunuzda lalo bir sıra LatLng obyektidir. Xəttin dəyişdirilməsi

lalo.push (L.GeoJSON.coordsToLatLng (coord));

üçün

lalo = L.GeoJSON.coordsToLatLng (coord);

, buna görə lalo tək bir LatLng obyekti olacaq, hiylə etməlidir.

Http://jsfiddle.net/1eh1nn9y/1/ saytında fiddle baxın.