Folleto de utilizar Geocoder sin establecer un marcador en la búsqueda

votos
0

Actualmente estoy usando el mapa folleto y añadidos este geocodificador plugin: https://github.com/perliedman/leaflet-control-geocoder . Mi problema es que cada vez que busco un lugar, sino que también establece un marcador en este lugar, pero no quieres que lo haga. Sólo se debe acercar y no establecer un marcador.

¿Alguien sabe cómo desactivar esta función o anule la marca conjunto instante?

El marcador conjunto se parece a esto

Estoy trabajando en el jónico / mecanografiado y mi código para utilizar el geocodificador es la siguiente:

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

De acuerdo con GitHub, defaultMarkGeocode: falsa debe desactivar el marcador. Al usarlo, apenas consigo este error:

No se puede leer la propiedad '_leaflet_id' de la indefinida

También probé

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

pero simplemente me dice que nunca fue utilizado el geocodificador variable y me sale este error:

No se puede leer la propiedad 'addLayer' de la indefinida

Si tienes alguna sugerencia de cómo solucionarlo y, o bien desactivar o eliminar este marcador, estaría muy por suerte.

Saludos

Publicado el 22/07/2018 a las 17:40
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
0

No se pudo reproducir los exactas mensajes de error que usted describe:

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>

Sin embargo, cuando collapsedla opción se establece en false, hay otro mensaje de error:

TypeError: this.options.geocoder [mode] no es una función

... que se resuelve en la repo plugin PR perliedman / folleto-control-geocodificador # 184 , pero aún no se envía en una versión publicada en NPM / unpkg CDN.

Si necesita más ayuda sobre los mensajes de error, por favor proporcione el código que los reproduce .

Respondida el 23/07/2018 a las 13:40
fuente por usuario

votos
0

Por favor, intente esto con pequeñas modificaciones.

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);
Respondida el 22/08/2019 a las 12:09
fuente por usuario

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