Użyj ulotka geocoder bez ustawiania znacznika podczas przeszukiwania

głosy
0

Aktualnie używam mapę ulotki i dodało ten geocoder wtyczki: https://github.com/perliedman/leaflet-control-geocoder . Moim problemem jest to, że za każdym razem szukać miejsca, ale również ustawia znacznik w tym miejscu, ale nie chcę go. Należy przybliżyć tylko i nie ustawić znacznik.

Czy ktoś wie jak wyłączyć tę funkcję lub usunąć zestaw znacznik od razu?

W zestawie marker wygląda następująco

Pracuję w jońskim / maszynopisu i mój kod do korzystania z geocoder to:

leaflet.Control.geocoder().addTo(this.map);   

Według GitHub, defaultMarkGeocode: false należy wyłączyć znacznik. Kiedy go za pomocą, po prostu dostać ten błąd:

Nie można odczytać własności „_leaflet_id” undefined

Próbowałem też

var geocoder = L.Control.geocoder({
    defaultMarkGeocode: false
})
.on('markgeocode', function(e) {
    var bbox = e.geocode.bbox;
    var poly = L.polygon([
         bbox.getSouthEast(),
         bbox.getNorthEast(),
         bbox.getNorthWest(),
         bbox.getSouthWest()
    ]).addTo(map);
    map.fitBounds(poly.getBounds());
})
.addTo(map);

ale to po prostu mówi mi, że zmienna geocoder nigdy nie był używany i otrzymuję ten błąd:

Nie można odczytać własności „addLayer” undefined

Jeśli masz jakieś sugestie, jak go naprawić i albo wyłączyć lub usunąć ten znacznik, byłbym bardzo szczęście.

Pozdrowienia

Utwórz 22/07/2018 o 17:40
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

Nie udało się odtworzyć dokładne komunikaty o błędach można opisać:

var map = L.map('map').setView([0, 0], 2);

var geocoder = L.Control.geocoder({
    defaultMarkGeocode: false,
    collapsed: false
  })
  .on('markgeocode', function(e) {
    var bbox = e.geocode.bbox;
    var poly = L.polygon([
      bbox.getSouthEast(),
      bbox.getNorthEast(),
      bbox.getNorthWest(),
      bbox.getSouthWest()
    ]).addTo(map);
    map.fitBounds(poly.getBounds());
  })
  .addTo(map);

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
html,
body,
#map {
  height: 100%;
  margin: 0;
}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin="" />
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet-src.js" integrity="sha512-IkGU/uDhB9u9F8k+2OsA6XXoowIhOuQL1NTgNZHY1nkURnqEGlDZq3GsfmdJdKFe1k1zOc6YU2K7qY+hF9AodA==" crossorigin=""></script>

<link rel="stylesheet" href="https://unpkg.com/leaflet-control-geocoder@1.5.8/dist/Control.Geocoder.css" />
<script src="https://unpkg.com/leaflet-control-geocoder@1.5.8/dist/Control.Geocoder.js"></script>

<div id="map"></div>

Jednak gdy collapsedopcja jest ustawiona false, istnieje inny komunikat o błędzie:

Błąd typu: this.options.geocoder [Tryb] jest funkcją

... który został rozwiązany w wtyczki repo przez PR perliedman / ulotka-control-geocoder nr 184 , ale to jeszcze nie jest dostarczany w wersji wydanej w npm / unpkg CDN.

Jeśli potrzebujesz dodatkowej pomocy na swoich komunikatów o błędach, należy podać kod, który je odtwarza .

Odpowiedział 23/07/2018 o 13:40
źródło użytkownik

głosy
0

spróbuj to z małymi modyfikacjami.

var map = L.map('map').setView([0, 0], 2);

var geocoder = L.Control.geocoder({
    defaultMarkGeocode: false,
    collapsed: false
  })
  .on('markgeocode', (e) => {
    var bbox = e.geocode.bbox;
    var poly = L.polygon([
      bbox.getSouthEast(),
      bbox.getNorthEast(),
      bbox.getNorthWest(),
      bbox.getSouthWest()
    ]).addTo(map);
    map.fitBounds(poly.getBounds());
  })
  .addTo(map);
Odpowiedział 22/08/2019 o 12:09
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more