问题标签 [ngx-leaflet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 我的服务仅在我的 ngx 传单地图上显示最后一个 json 元素标记
如果我对数据进行硬编码,那么所有标记都会很好地显示出来。如果我评论这一行this.markers.push(newMarker) ; 并用下一个替换它,我得到一个ERROR TypeError: Cannot read property 'push' of undefine
如果我使用this.markers = [newMarkers]只有一个最后一个 json 元素显示为标记。
如何同时显示所有标记,这是 async 的问题吗?
服务
JSON数据
有效的硬编码数据
django-rest-framework - 使用 ngx-leaflet 从 Angular 中的 Django Rest Framework 创建多个点的可用 geojson
好的,所以我有一个 9,000 个对象的数组,通过 HttpClient 从我的 django rest api 返回。这些对象已经是 Geojson 格式。我如何将其转换为使用 ngx-leaflet 进行映射的图层。我很容易用基本的 javascript 解决这个问题,但我很困惑在 angular 内部做这件事。我以前在 GeoDjango 中完成了这一切,但现在我已经将正面和背面分开了。
这是我的组件代码:
我从这个论坛上的一个回复中借用了代码。
编辑:如果我为 id 1 做 people/1/ 我得到错误“无效的 GeoJSON 对象”。我正在使用 Postman 对此进行测试,并且我正在为 django 使用 cors-headers。我正在使用 PostGIS 数据库并在 djangorestframework-gis 中使用 geojson 序列化程序
如果我去掉 (geo1) 前面的 geoJSON,它会显示“提供的对象不是图层”。
编辑 2:有人知道与 Angular 6 配合得很好的 Leaflet 的替代品吗?
编辑 3: 这是返回的对象...
angular - ngx-leaflet 在 Dropbox 选择的值更改后重新加载地图
我有几个方程(即公里,米,厘米)的保管箱。最初加载了 km 值的地图。
如果用户选择仪表,我想用新的计算重新加载/刷新地图(即 km*1000)。主要是想更新弹出窗口和图例,但是完全重新加载地图就可以了。如何发出事件以使用新值重新加载地图?谢谢
angular - 自定义指令中的抽象离开传单指令
我目前正在开发一个使用 ngx-leaflet 来使用传单的 Angular 6 应用程序。我们希望能够创建一个可以通过向其添加指令来定制的基础组件。基本上与使用leafletDraw 使用绘图功能时使用的模式相同。但是这些指令应该比leaflet 和leafletDraw 指令更抽象。
目前,我们最终得到了在我们的“基础组件”中使用的以下模板
正如您所看到的,这最终可能会出现在不同抽象级别的一大堆指令中。
我宁愿有这个:
OurNiceMapComponent 组件的模板如下所示:
这有两个挑战。
- 找到一种方法来了解更高级别的指令如何与较低级别的指令 (leafletDraw) 进行交互/配置 (poiSelection)。
- 如何动态添加指令。正如您在上面的OurNiceMapComponent 模板中看到的那样,我没有添加leafletDraw,因为它仅由特定的更高级别指令使用。
所以问题是,如何创建这些“高阶指令”。
javascript - 在 Angular 中使用传单弧?
如何在 Angular 中使用Leaflet-arc 插件?到目前为止我已经尝试过:
npm install --save leaflet-arc
- 添加
"scripts": ["node_modules/leaflet-arc/src/leaflet-arc.js"]
到angular.json
. - 添加
import '../../../node_modules/leaflet-arc/src/leaflet-arc.js';
到my-component.component.ts
.
但是,当我在里面执行以下操作时my-component.component.ts
,它仍然给我一个错误Property 'Arc' does not exist on type 'typeof Polyline'.
:
L.Polyline.Arc(...)
当我这样做时ng serve
,它确实有效,但在编译时它仍然会出错。
有任何想法吗?
angular - 将 BeautifyMarker 插件添加到 ngx-leaflet 项目
我目前无法将 BeautifyMarker 插件与ngx-leaflet
Angular 2 包集成。
我已经按照BeautifyMarker 的安装说明以及ngx-leaflet 插件说明进行操作,但没有成功。
我曾经使用npm install
BeautifyMarker、Font Awesome,并且已经安装了 Bootstrap。传单也已经按照ngx-leaflet
官方教程正确添加和配置。
我编辑了我的angular-cli.json
文件以包含 BeautyMarker .css 和 .js 文件,如下所示:
我还完全导入了包,因为它扩展了L
,如下所示:
那没有用,所以我也尝试了:
还尝试完全省略导入,例如heatmap.js
插件。这些都不允许我访问L.BeautifyIcon
.
有小费吗?
angular - 调用传单标记的onClick时,材质对话框卡住
我有一个项目,我有一张地图(使用ngx-leaflet)。单击
标记时,
我想显示来自Angular Material的 Dialog 。
对话框打开,但是当我单击关闭按钮时,它再次重新打开然后关闭。
我尝试了什么:
- 使用超时延迟对话
- 触发打开对话框的主题
- 删除和创建新对话框
- 在 ngx-leaflet 和 angular-material 的问题中搜索此错误
我发现了什么:
- 在发生某些事情后触发所有生命周期钩子(点击,背后的 js 事件,任何事情)
- 对话框可以随心所欲地简单,它不会改变任何东西
- 当我在对话框关闭时再次打开对话框时(在对话框的afterClosed中)它正常工作
示例代码的进一步解释:
- 在 App.component.ts 我将一个事件处理程序绑定到每个标记,然后在另一个函数中打开对话框
- 该代码是我在网上找到的这个项目的一个分支(只是更新了依赖项)
演示
我在这里做了一个演示:示例项目。
javascript - ngx-leaflet 地图缩放事件未触发
根据 ngx-leaflet 文档链接 (leafletMapMoveEnd)
,(leafletMapZoomEnd)
它们都是公开的事件。
我假设这些事件在地图初始化的同一个 DOM 中公开,并且应该像这样实现:
这是捕捉这些事件的正确方法吗?
(leafletMapReady)
似乎工作得很好。
但是,当我自己弄乱地图时,两者都没有(leafletMapZoomEnd)
或(leafletMapMoveEnd)
似乎没有触发。
我尝试平移地图,以及放大和缩小。这些交互都不会导致handleMapZoomEnd($event)
handleMapMoveEnd($event)
方法被命中。
angular - 添加图层组以按名称进行映射和更新
我目前正在使用带有 Angular 6.x 和 RXjs 6.x 的 ngx-leaflet 4.0.0。我有一堆应该在地图上绘制的生成/流式传输的可观察对象。
当我们有很多标记时,如您所料,性能会下降。这可能与我基本上将所有标记连接到一个我传递给leafletLayers 的单个数组中的事实有关。
理想情况下,我只使用其名称添加、删除或更新单个图层组。不幸的是,我不知道如何使用 LayerGroups 作为使用大量标记时的两个性能增强之一。我想使用如下所示的数据结构,这可能吗?
我没有使用leafletMapControl,我们有自己的自定义用户界面来选择图层。