首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将leaflet跟踪符号插件与angular集成?

如何将leaflet跟踪符号插件与angular集成?
EN

Stack Overflow用户
提问于 2021-11-05 16:29:02
回答 1查看 43关注 0票数 0

我正在使用带有angular的宣传单。我使用npm安装了leaflet,并使用以下命令将其导入我的组件:

代码语言:javascript
复制
import * as L from 'leaflet';

它的工作方式与预期一致。接下来,我通过npm安装了leaflet-tracksymbol plugin

代码语言:javascript
复制
npm install --save leaflet-tracksymbol

并将其导入我的组件中:

代码语言:javascript
复制
import * as L from 'leaflet';
import 'leaflet-tracksymbol';

但是当我尝试使用以下命令创建轨迹符号时:

代码语言:javascript
复制
L.trackSymbol([lat,lng], options);

我得到了这个错误:

代码语言:javascript
复制
Property 'trackSymbol' does not exist on type 'typeof import("[...]node_modules/@types/leaflet/index")'.

我还尝试将leaflet-tracksymbol.js .js添加到angular.json脚本块中,并尝试使用以下命令将其导入到我的组件中:

导入‘../node_modules/leaflet-tracksymbol/leaflet-tracksymbol.js’;

这三种导入方法似乎都是wrok的,但L不是扩展的,L.TrackSymbol也不可用。

我也试着在SO suggested上使用(L as any).trackSymbol...作为答案,但这也没有用。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-09 14:54:03

这对我很有效。如错误所示,您需要安装@types/leaflet

代码语言:javascript
复制
ngOnInit() {
    var map = L.map("map").setView([51.505, -0.09], 2);

    L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
      attribution:
        '&copy; <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);
}

Demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69856376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档