Utilizzare Volantino Geocoder senza impostare un marcatore durante la ricerca

voti
0

Attualmente sto usando la mappa volantino e ha aggiunto questo plugin geocoder: https://github.com/perliedman/leaflet-control-geocoder . Il mio problema è che ogni volta che la ricerca di un posto, imposta anche un marcatore in questa posizione, ma Non voglio a. Esso deve essere ingrandita solo in e non impostare un marcatore.

Qualcuno sa come disattivare questa funzione o eliminare il marcatore insieme istantaneamente?

Il marcatore set si presenta così

Sto lavorando in ionico / dattiloscritto e il mio codice per utilizzare il geocoder è questo:

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

Secondo GitHub, defaultMarkGeocode: false deve disattivare il marcatore. Quando lo si utilizza, ottengo solo questo errore:

Impossibile leggere proprietà '_leaflet_id' undefined

Ho anche provato

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

ma appena mi dice che il geocoder variabile è stata mai usata e ottengo questo errore:

Impossibile leggere proprietà 'addLayer' undefined

Se avete suggerimenti su come risolvere il problema e disattivare o cancellare questo indicatore, sarei molto fortuna.

Saluti

È pubblicato 22/07/2018 alle 17:40
fonte dall'utente
In altre lingue...                            


2 risposte

voti
0

Impossibile riprodurre le esatte messaggi di errore che descrivono:

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>

Tuttavia, quando collapsedè impostata su false, c'è un altro messaggio di errore:

TypeError: this.options.geocoder [mode] non è una funzione

... che si risolve nel plugin di pronti contro termine di PR perliedman / volantino-control-geocoder # 184 , ma non è ancora spedito in una versione rilasciata in NPM / unpkg CDN.

Se avete bisogno di ulteriore aiuto sui vostri messaggi di errore, si prega di fornire il codice che li riproduce .

Risposto il 23/07/2018 a 13:40
fonte dall'utente

voti
0

Si prega di provare questo con piccole modifiche.

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);
Risposto il 22/08/2019 a 12:09
fonte dall'utente

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