Импортировать листовку-управление-геокодер в проект Angular 8?

угловая версия: 8

версия в package.json:

"leaflet": "1.5.1",
"leaflet-draw": "1.0.4",
"leaflet-sidebar-v2": "3.0.3",
"esri-leaflet": "2.3.2",
"leaflet-control-geocoder": "1.10.0"

У меня есть буклет об импорте и другие подобные:

import * as L from 'leaflet';
import 'leaflet-draw';
import * as esri from 'esri-leaflet';
import 'leaflet-sidebar-v2';
import 'leaflet-control-geocoder';

Теперь мне нужно использовать или leaflet-control-geocoder для реализации этой функции, но если я напишу это:

L.control.geocoder().addTo(map);

угловой сбой. (Свойство «geocoder» не существует для типа «typeof Control»). Я также пытаюсь использовать esri-leaflet-geocoder, но это тоже сбой.

любое решение?


person Gianluca Straffi    schedule 03.01.2020    source источник


Ответы (3)


Пожалуйста, попробуйте с заглавной буквой "C" L.Control.geocoder().addTo(map)

или (но это должно иметь тот же эффект)

var geocoder = new L.Control.geocoder();
map.addControl(geocoder);
person Falke Design    schedule 03.01.2020
comment
Тот же результат. Свойство «geocoder» не существует для типа «typeof Control» - person Gianluca Straffi; 03.01.2020
comment
Затем загляните в: github.com/consbio/Leaflet.ZoomBox/issues/ или stackoverflow.com/questions/42620830/ - person Falke Design; 03.01.2020

У меня такая же проблема. Я добавил геокодер в L.Routing.control, и он работает! (на самом деле, VS Code по-прежнему говорит Property 'Geocoder' does not exist on type 'typeof Control'), но это работает!:

L.Routing.control({ waypoints: [L.latLng(57.74, 11.94), L.latLng(57.6792, 11.949)], showAlternatives: true, geocoder: L.Control.Geocoder.nominatim() }).addTo(this.map);

Я работаю с Angular 8, плагином для листовок-маршрутизаторов.

person ndrpochin    schedule 19.02.2020
comment
Я нахожу решение! npmjs.com/package/leaflet-geosearch smeijer.github.io/leaflet-geosearch/#search Здесь есть все, что мне нужно! - person Gianluca Straffi; 05.05.2020

У меня такая же проблема. Я исправил это, сделав так

import * as L from 'leaflet';
import Geocoder from 'leaflet-control-geocoder';
...
this.map = L.map('map', {
    center: [staticLatLng.lat, staticLatLng.lng], 
    zoom: zoomLevel
});
const GeocoderControl = new Geocoder();
GeocoderControl.addTo(this.map);
GeocoderControl.on('markgeocode', function (e) {
console.log(e);
});
...
person Bhagat Gurung    schedule 08.06.2021