esri-leaflet 未显示在角度打字稿中,它无法识别 VECTOR



我无法显示地图或使用esri-leafleft提供的搜索:这里是typsescript的代码

文件。
import {  Component, OnInit } from '@angular/core';
import { Title, Meta } from '@angular/platform-browser';
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 esri from "esri-leaflet-geocoder";
/*import * as esri from "esri-leaflet";*/ this one is not working i already installed it.


@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']

})

export class AppComponent implements OnInit{
marker;
title = 'Events Management';
constructor() { }


ngOnInit(){
const apiKey = "I already have the key";
const basemapEnum = "ArcGIS:Navigation";
const map = L.map("map", {
minZoom: 2
}).setView([-33.8688,151.2093], 14); // Sydney
L.esri.Vector.vectorBasemapLayer(basemapEnum, {
apiKey: apiKey
}).addTo(map);

const searchControl = esri.Geocoding.geosearch({
position: "topright",
placeholder: "Enter an address or place e.g. 1 York St",
useMapBounds: false,
providers: [esri.Geocoding.arcgisOnlineProvider({
apikey: apiKey,
nearby: {
lat: -33.8688,
lng: 151.2093
},
})]
}).addTo(map);
const results = L.layerGroup().addTo(map);
searchControl.on("results", (data) => {
results.clearLayers();
for (let i = data.results.length - 1; i >= 0; i--) {
const lngLatString = `${Math.round(data.results[i].latlng.lng * 100000)/100000}, ${Math.round(data.results[i].latlng.lat * 100000)/100000}`;
const marker = L.marker(data.results[i].latlng);
marker.bindPopup(`<b>${lngLatString}</b><p>${data.results[i].properties.LongLabel}</p>`)
results.addLayer(marker);
marker.openPopup();
}
});
}
}

错误类型错误:leaflet__webpack_importted_module___esri is undefined这是我得到的错误,我得到在控制台,我到处看,但没有发现任何东西,即使我改变L只有esri它不会与矢量部分

工作

我不知道角,但你已经注释了你导入esri-传单:

/*import * as esri from "esri-leaflet";*/

你应该重命名你从esri-geocoder导入,这样它就不会干扰你的esri导入:

import * as esri from "esri-leaflet"
import * as EsriGeocoder from "esri-leaflet-geocoder"

如果没有esri导入,esri对象不会被导入并附加到L,并且任何对L.esri的调用都将无法工作。

最新更新