关于Angular的Esri地理编码传单不导入地理编码类



我试图在Angular项目中使用地理编码形式esri传单库,但我有导入类的问题。

这是我的组件代码:

import { Component, OnInit, AfterViewInit, Type } from '@angular/core';
import { latLng, tileLayer, layerGroup, marker, Layer, Control, circle, polygon, Map } from 'leaflet';
import * as L from 'leaflet';
import * as esri from 'esri-leaflet';
import GeocodeService from 'esri-leaflet-geocoder/dist/esri-leaflet-geocoder';

@Component({
selector: 'abd-map',
templateUrl: './abd-map.component.html',
styleUrls: ['./abd-map.component.scss']
})
export class AbdMapComponent implements OnInit, AfterViewInit {

constructor() {}
ngOnInit(): void {
}

ngAfterViewInit(): void{

const openStreetMap = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
});
const googleMap = L.tileLayer('http://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}', {
maxZoom: 20,
subdomains: ['mt0', 'mt1', 'mt2', 'mt3']
});

const map = L.map('map', {
center: [39.61, -105.02],
zoom: 13,
layers: [openStreetMap, googleMap]
});
const baseMaps = {
'openStreetMap': openStreetMap,
'googleMap': googleMap
};
L.control.layers(baseMaps).addTo(map);

const searchControl = esri.Geocoding.geosearch().addTo(map);

}

}

当我跑";ng发球";我有这个错误:

中的错误/src/app/abd-map/abd-macomponent.ts 41:30-44"在"esri传单"中找不到导出"Geocoding"(导入为"esri"(

有人能帮我吗?谢谢

您应该导入:

import "leaflet/dist/leaflet.css";
import * as L from "leaflet";
import "esri-leaflet-geocoder/dist/esri-leaflet-geocoder.css";
import "esri-leaflet-geocoder/dist/esri-leaflet-geocoder";
import * as ELG from "esri-leaflet-geocoder";

然后像这样初始化插件:

const searchControl = new ELG.Geosearch();
const results = new L.LayerGroup().addTo(map);
searchControl
.on("results", function (data) {
results.clearLayers();
for (let i = data.results.length - 1; i >= 0; i--) {
results.addLayer(L.marker(data.results[i].latlng));
}
})
.addTo(map);

演示

最新更新