问题标签 [mapbox-gl-draw]

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 回答
147 浏览

mapbox - 使用 Mapbox gl 绘制,在覆盖多边形特征的圆半径后,如何放大所选顶点的圆半径?

在官方demo中,在“draw_polygon”模式下创建多边形后,当你direct_select多边形上的一个顶点时,该顶点将被放大。https://docs.mapbox.com/mapbox-gl-js/example/mapbox-gl-draw/

在这个 js 小提琴中:https : //jsfiddle.net/frankzhang2046/y49mhtjx/16/ 在覆盖第 258-271 行中顶点的样式规则后,“direct_select”下的选定顶点不再放大。

想知道我可以使用什么 API/选择器来定位选定的顶点以恢复“选定时放大”行为。谢谢。

0 投票
0 回答
125 浏览

javascript - 地图加载到地图框中后绘制圆圈

我想在地图加载后画圈。例如,当用户单击一个按钮时,它会在地图上创建一个圆圈。

这是代码,但是当我将这些代码放在 map.onload() 函数之外时,它会出错

未捕获的错误:在 Map.addLayer (map.js:1912) 在 map.js:211 的 Ze.addLayer (style.js:756) 的 Ze._checkLoaded (style.js:433) 未完成样式加载

我想要的是地图加载后的创建圈。

0 投票
0 回答
52 浏览

mapbox-gl-draw - 从geojson编辑线串时,Mapbox-gl-draw重复点

当我在地图上选择一个点并拖动该点以移动它时,它会复制该点并在所选点周围的两个点之间创建一条新线,这最终会导致一个三角形,而不是我只能修改现有的线。 由重复点创建的三角形

我急忙把这个jsfiddle扔在一起,但它演示了我在修改现有线时遇到的问题(线为蓝色,放大,单击它,选择一个点并绘制):

jsfiddle

任何人都知道如何解决这种行为?我只想能够在不创建新点的情况下移动点并重新定位它们。当我从头开始画一条线并修改该线上的一个点时,它可以完美地工作。

0 投票
1 回答
71 浏览

vue.js - Mapbox-gl Draw 控件在 Vue 中不显示

我的问题

大家好,

我正在尝试在 Vue 应用程序中使用 Mapbox-gl Draw。我已经使用了 Mapbox-gl,它运行良好。

当我尝试使用 Mapbox-gl Draw 时,会显示控件容器,但不显示控件图标

我正在以建议的方式导入 Draw:

触发地图事件map-load时调用此代码。放大/缩小和北重置控件正常显示,但绘图控件不显示。

我在寻找什么

我猜这与 Mapbox-gl 与 Vue 不兼容有关,但我可能弄错了。我在 StackOverflow 或 Mapbox-gl Draw 问题中没有发现类似的问题,但我不能是唯一遇到这种情况的人。或者也许我是?

如果有人可以帮助我使这些图标出现,或者甚至用非 mapbox 图标替换它们,那就太好了!

谢谢你,祝你有美好的一天

0 投票
0 回答
34 浏览

javascript - Mapbox:在 onClick() 中使用 REST API 调用创建自定义绘制模式

我正在尝试使用该@mapbox/mapbox-gl-draw库创建自定义绘制模式。我希望该模式允许用户通过在地图上放置点来创建路线。每个点放置好后,我想调用 Mapbox Map Matching API 来查找上一个点和当前点之间的路线,然后渲染结果线。

我面临的问题是,在地图上放置另一个点或用户切换模式之前,该线不会被渲染。我猜这个问题是由于对 Map Matching 的 API 调用返回了一个承诺,尽管我离 Mapbox 专家最远(几天前才开始使用它)。

我将附上该问题的视频剪辑,希望它比我能更好地描述问题:https ://streamable.com/ao3ger

DrawRoute 模式onClick函数如下所示:

这是onDisplayFeatures方法:

有人对 Mapbox 如何呈现每个功能有指导吗?我可以看到,DrawRoute每次用户单击时,该对象都包含新的线要素,但toDisplayFeatures直到创建下一个点时它们才会传递给。谢谢!

0 投票
2 回答
79 浏览

mapbox - Mapbox-gl-在 LineString 上绘制数据驱动样式

我使用 Mapbox GL Draw,我想使用数据驱动自定义 LineString Feature 的填充颜色。我有一个集合userProperties: true,我有一个以 user_ 为前缀的属性。

这是我的风格配置:

和我的特点:

功能始终使用默认值 (#ff0000) 绘制。在这个例子中它应该是#00ff00。在同一个应用程序中,我使用相同的属性(user_type)在多边形上设置线条颜色,它工作正常!

任何想法 ?

0 投票
0 回答
51 浏览

mapbox - Mapbox-gl-draw:区分多边形线与正在绘制和已经绘制

在我的项目中,我有一张地图,上面有一个 MapboxGLDraw 图层,可以让用户绘制多边形。在我的 MapboxDrawGl 对象中,我有以下样式:

这会在绘制时产生一个带有白色轮廓的多边形,在完成绘制时产生一个带有白色轮廓和蓝色填充的多边形。到目前为止,一切都很好。

除了在绘制时,我只希望实际绘制的线(因此两个放置点之间的多边形笔划)是可见的,而不是绘制点和尚未绘制点之间的线。上面的样式是后者。我该如何做到这一点?

所以不是这个,而是只有在实际绘制第三点时才能看到对角线笔划。