Vairāk

Bukleta fitBounds sākuma stāvoklis

Bukleta fitBounds sākuma stāvoklis


Es veidoju lietotni Leaflet, kas izmanto kodu no vienkāršās CSV veidnes, lai iestatītu kartes robežas līdz atlasītajiem marķieriem.

Man ir tāda problēma, ka vēlos iestatīt asāktpozīcija, kas nav visu manu marķieru robeža. Es arī vēlētos, lai karte atgrieztos pie šīsāktpozīciju vienreizskaidrstiek aktivizēta arī funkcija.

Dažas no galvenajām koda sadaļām var redzēt zemāk, bet krātuve ir pieejama, izmantojot iepriekš norādīto saiti.

var addCsvMarkers = funkcija () {hits = 0; kopā = 0; filterString = document.getElementById ('filter-string'). vērtība; if (filterString) {$ ("#clear"). fadeIn (); } cits {$ ("#skaidrs"). fadeOut (); } map.removeLayer (marķieri); points.clearLayers (); marķieri = jauna L.MarkerClusterGroup (clusterOptions); points.addData (dataCsv); markers.addLayer (punkti); map.addLayer (marķieri); mēģiniet {var robežas = markers.getBounds (); if (robežas) {map.fitBounds (robežas, {maxZoom: 15}); }} catch (err) {// pass} if (kopā> 0) {$ ('#search-results'). html ("Rāda " + hits +" no " + kopā +" Projekti ");} atgriezt nepatiesu;};

&

$ ("#skaidrs"). noklikšķiniet uz (funkcija (evt) {evt.preventDefault (); $ ("#filter-string"). val (""). focus (); addCsvMarkers ();});

EDIT: Vai ir iespējamssetViewtiek izsaukts, definējot karti, lai ignorētufitBoundspavēle?

var karte = L.karte ('karte', {zoomControl: nepatiesa, minZoom: 3, maxZoom: 18}). setView ([54.5, -4], 6);

Šeit ir daudz iespēju atkarībā no tā, ko tieši vēlaties darīt.

  1. Pievienojiet Būla argumentu addCsvMarkers, kas pēc izvēles iekļauj karti marķieros

    funkcija addCsvMarkers (fitBounds) {// snip… lekt uz vidu… map.addLayer (marķieri); mēģiniet {var robežas = markers.getBounds (); // šeit pārbaudiet, vai nav fitBounds opcijas, ja (robežas && fitBounds) {map.fitBounds (robežas, {maxZoom: 15}); } //… izgriezt} // saukt to tā, lai izlaistu pielīmēšanas robežas uz csv marķieriem: addCsvMarkers (false);
  2. Kamēr jūsu karte ir globālā mērogā, varat arī definēt funkciju, piem. "zoomHome", kas atgriež karti jebkurā vēlamajā skatā/apjomā:

    funkcija zoomHome () {map.setView ([54.5, -4], 6); }

    Varat to izsaukt, palaižot lietotni:

    // deklarēt karti globālā mērogā var map; $ (document) .ready (function () {map = L.map ('map', {zoomControl: false, minZoom: 3, maxZoom: 18}); // šeit: zoomHome ();});

    Vai kā daļu no "skaidras"

    $ ("#skaidrs"). noklikšķiniet uz (funkcija (evt) {evt.preventDefault (); $ ("#filter-string"). val (""). focus (); addCsvMarkers (false); zoomHome (); });

Skatīties video: Співбесіда на посаду Голови Державного агентства лісових ресурсів Болоховець Ю В