如何将 leaflet tracksymbol 插件与 angular 集成?
How to integrate leaflet tracksymbol plugin with angular?
我正在使用带有 angular 的传单。我用 npm 安装了 leaflet 并将其导入到我的组件中:
import * as L from 'leaflet';
按预期工作。接下来我通过 npm
安装了 leaflet-tracksymbol plugin
npm install --save leaflet-tracksymbol
并将其导入到我的组件中:
import * as L from 'leaflet';
import 'leaflet-tracksymbol';
但是当我尝试创建一个轨道符号时:
L.trackSymbol([lat,lng], options);
我收到这个错误:
Property 'trackSymbol' does not exist on type 'typeof import("[...]node_modules/@types/leaflet/index")'.
我还尝试将 leaflet-tracksymbol.js 添加到 angular.json 脚本块,并尝试将其导入到我的组件中:
导入'../../../../node_modules/leaflet-tracksymbol/leaflet-tracksymbol.js';
三种导入方法似乎都有效,但 L 未扩展且 L.TrackSymbol 不可用。
我还尝试将 (L as any).trackSymbol...
作为对 SO 建议的答案,但也没有用。
我做错了什么?
适合我。您需要按照错误指示安装 @types/leaflet
。
ngOnInit() {
var map = L.map("map").setView([51.505, -0.09], 2);
L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution:
'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var latlng = L.latLng(20, 30);
var speed = 10.0; // In m/s
var course = (45.0 * Math.PI) / 180.0; // Radians from north
var heading = (45.0 * Math.PI) / 180.0; // Radians from north
var trackMarker = (L as any).trackSymbol(latlng, {
trackId: 123,
fill: true,
fillColor: "#0000ff",
fillOpacity: 1.0,
stroke: true,
color: "#000000",
opacity: 1.0,
weight: 1.0,
speed: speed,
course: course,
heading: heading
});
trackMarker.addTo(map);
}
我正在使用带有 angular 的传单。我用 npm 安装了 leaflet 并将其导入到我的组件中:
import * as L from 'leaflet';
按预期工作。接下来我通过 npm
安装了 leaflet-tracksymbol pluginnpm install --save leaflet-tracksymbol
并将其导入到我的组件中:
import * as L from 'leaflet';
import 'leaflet-tracksymbol';
但是当我尝试创建一个轨道符号时:
L.trackSymbol([lat,lng], options);
我收到这个错误:
Property 'trackSymbol' does not exist on type 'typeof import("[...]node_modules/@types/leaflet/index")'.
我还尝试将 leaflet-tracksymbol.js 添加到 angular.json 脚本块,并尝试将其导入到我的组件中:
导入'../../../../node_modules/leaflet-tracksymbol/leaflet-tracksymbol.js';
三种导入方法似乎都有效,但 L 未扩展且 L.TrackSymbol 不可用。
我还尝试将 (L as any).trackSymbol...
作为对 SO 建议的答案,但也没有用。
我做错了什么?
适合我。您需要按照错误指示安装 @types/leaflet
。
ngOnInit() {
var map = L.map("map").setView([51.505, -0.09], 2);
L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution:
'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var latlng = L.latLng(20, 30);
var speed = 10.0; // In m/s
var course = (45.0 * Math.PI) / 180.0; // Radians from north
var heading = (45.0 * Math.PI) / 180.0; // Radians from north
var trackMarker = (L as any).trackSymbol(latlng, {
trackId: 123,
fill: true,
fillColor: "#0000ff",
fillOpacity: 1.0,
stroke: true,
color: "#000000",
opacity: 1.0,
weight: 1.0,
speed: speed,
course: course,
heading: heading
});
trackMarker.addTo(map);
}