问题标签 [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.

0 投票
1 回答
101 浏览

javascript - 我的服务仅在我的 ngx 传单地图上显示最后一个 json 元素标记

如果我对数据进行硬编码,那么所有标记都会很好地显示出来。如果我评论这一行this.markers.push(newMarker) ; 并用下一个替换它,我得到一个ERROR TypeError: Cannot read property 'push' of undefine

如果我使用this.markers = [newMarkers]只有一个最后一个 json 元素显示为标记。

如何同时显示所有标记,这是 async 的问题吗?

服务

JSON数据

有效的硬编码数据

0 投票
1 回答
439 浏览

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: 这是返回的对象...

0 投票
2 回答
1376 浏览

angular - angular - ngx-leaflet 自动集中到有关加载数据的特定区域

我正在使用 Angular 6 和 ngx-leaflet。我正在加载数据后端,并且在地图上加载数据后尝试缩放到区域(在本例中为印度)。

我的 html 看起来:

在 .ts

onMapReady(map: L.Map), map.getBounds() 总是返回一个协调,但不是我需要的那个。

我也尝试过使用 [leafletFitBounds],但我无法获得正确的反弹。首先是现在的情况。我想要达到的第二个。

提前致谢。

是)我有的

我想拥有什么

this.markerClusterData看起来像这样

标记集群数据

0 投票
1 回答
486 浏览

angular - ngx-leaflet 在 Dropbox 选择的值更改后重新加载地图

我有几个方程(即公里,米,厘米)的保管箱。最初加载了 km 值的地图。

如果用户选择仪表,我想用新的计算重新加载/刷新地图(即 km*1000)。主要是想更新弹出窗口和图例,但是完全重新加载地图就可以了。如何发出事件以使用新值重新加载地图?谢谢

0 投票
2 回答
385 浏览

angular - 自定义指令中的抽象离开传单指令

我目前正在开发一个使用 ngx-leaflet 来使用传单的 Angular 6 应用程序。我们希望能够创建一个可以通过向其添加指令来定制的基础组件。基本上与使用leafletDraw 使用绘图功能时使用的模式相同。但是这些指令应该比leaflet 和leafletDraw 指令更抽象。

目前,我们最终得到了在我们的“基础组件”中使用的以下模板

正如您所看到的,这最终可能会出现在不同抽象级别的一大堆指令中。

我宁愿有这个:

OurNiceMapComponent 组件的模板如下所示:

这有两个挑战。

  1. 找到一种方法来了解更高级别的指令如何与较低级别的指令 (leafletDraw) 进行交互/配置 (poiSelection)。
  2. 如何动态添加指令。正如您在上面的OurNiceMapComponent 模板中看到的那样,我没有添加leafletDraw,因为它仅由特定的更高级别指令使用。

所以问题是,如何创建这些“高阶指令”。

0 投票
1 回答
695 浏览

javascript - 在 Angular 中使用传单弧?

如何在 Angular 中使用Leaflet-arc 插件?到目前为止我已经尝试过:

  1. npm install --save leaflet-arc
  2. 添加"scripts": ["node_modules/leaflet-arc/src/leaflet-arc.js"]angular.json.
  3. 添加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,它确实有效,但在编译时它仍然会出错。

有任何想法吗?

0 投票
1 回答
1418 浏览

angular - 将 BeautifyMarker 插件添加到 ngx-leaflet 项目

我目前无法将 BeautifyMarker 插件与ngx-leafletAngular 2 包集成。

我已经按照BeautifyMarker 的安装说明以及ngx-leaflet 插件说明进行操作,但没有成功。

我曾经使用npm installBeautifyMarker、Font Awesome,并且已经安装了 Bootstrap。传单也已经按照ngx-leaflet官方教程正确添加和配置。

我编辑了我的angular-cli.json文件以包含 BeautyMarker .css 和 .js 文件,如下所示:

我还完全导入了包,因为它扩展了L,如下所示:

那没有用,所以我也尝试了:

还尝试完全省略导入,例如heatmap.js插件。这些都不允许我访问L.BeautifyIcon.

有小费吗?

0 投票
1 回答
1177 浏览

angular - 调用传单标记的onClick时,材质对话框卡住

我有一个项目,我有一张地图(使用ngx-leaflet)。单击
标记时, 我想显示来自Angular Material的 Dialog 。

对话框打开,但是当我单击关闭按钮时,它再次重新打开然后关闭。

我尝试了什么:

  • 使用超时延迟对话
  • 触发打开对话框的主题
  • 删除和创建新对话框
  • 在 ngx-leaflet 和 angular-material 的问题中搜索此错误

我发现了什么:

  • 在发生某些事情后触发所有生命周期钩子(点击,背后的 js 事件,任何事情)
  • 对话框可以随心所欲地简单,它不会改变任何东西
  • 当我在对话框关闭时再次打开对话框时(在对话框的afterClosed中)它正常工作

示例代码的进一步解释:

演示

我在这里做了一个演示:示例项目

0 投票
1 回答
2004 浏览

javascript - ngx-leaflet 地图缩放事件未触发

根据 ngx-leaflet 文档链接 (leafletMapMoveEnd)(leafletMapZoomEnd)它们都是公开的事件。

我假设这些事件在地图初始化的同一个 DOM 中公开,并且应该像这样实现:

这是捕捉这些事件的正确方法吗?

(leafletMapReady)似乎工作得很好。

但是,当我自己弄乱地图时,两者都没有(leafletMapZoomEnd)(leafletMapMoveEnd)似乎没有触发。

我尝试平移地图,以及放大和缩小。这些交互都不会导致handleMapZoomEnd($event) handleMapMoveEnd($event)方法被命中。

0 投票
1 回答
888 浏览

angular - 添加图层组以按名称进行映射和更新

我目前正在使用带有 Angular 6.x 和 RXjs 6.x 的 ngx-leaflet 4.0.0。我有一堆应该在地图上绘制的生成/流式传输的可观察对象。

当我们有很多标记时,如您所料,性能会下降。这可能与我基本上将所有标记连接到一个我传递给leafletLayers 的单个数组中的事实有关。

理想情况下,我只使用其名称添加、删除或更新单个图层组。不幸的是,我不知道如何使用 LayerGroups 作为使用大量标记时的两个性能增强之一。我想使用如下所示的数据结构,这可能吗?

我没有使用leafletMapControl,我们有自己的自定义用户界面来选择图层。