Utilizați Pliant geocoder fără a stabili un marker atunci când caută

voturi
0

In prezent sunt folosind harta prospect și a adăugat acest plugin geocoder: https://github.com/perliedman/leaflet-control-geocoder . Problema mea este că de fiecare dată am căuta un loc, acesta stabilește , de asemenea , un marker la această locație, dar nu vreau să - l. Acesta ar trebui să zoom numai și nu setați un marker.

Stie cineva cum să dezactivați această funcție sau șterge marcatorul set instantaneu?

Markerul set arata ca acest lucru

Sunt de lucru în Ionic / dactilografiat și codul meu pentru utilizarea geocoder este aceasta:

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

Potrivit GitHub, defaultMarkGeocode: fals ar trebui să dezactivați marcatorul. Când se utilizează, am obține doar această eroare:

Nu poate fi citită proprietatea „_leaflet_id“ de nedefinit

De asemenea, am încercat

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);

dar pur și simplu îmi spune că geocoder variabilă nu a fost niciodată folosit și am obține această eroare:

Nu poate fi citită proprietatea „addLayer“ de nedefinit

Dacă aveți sugestii cum să-l stabilească și să fie dezactivați sau să ștergeți acest marcator, aș fi foarte fericire.

Salutari

Întrebat 22/07/2018 la 17:40
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
0

Nu s -a putut reproduce exact mesajele de eroare pe care îl descrie:

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>

Cu toate acestea , atunci când collapsedopțiunea este setată la false, există un alt mesaj de eroare:

TypeError: this.options.geocoder [Mod] nu este o funcție

... care este rezolvată în repo plugin - ul de PR perliedman / pliant-control-geocoder # 184 , dar nu este încă livrat într - o versiune a lansat în NPM / unpkg CDN.

Dacă aveți nevoie de ajutor suplimentar la mesajele de eroare, vă rugăm să oferiți un cod care le reproduce .

Publicat 23/07/2018 la 13:40
sursa de către utilizator

voturi
0

vă rugăm să încercați acest lucru cu modificări mici.

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);
Publicat 22/08/2019 la 12:09
sursa de către utilizator

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