问题标签 [mapbox-gl-js]

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

mapbox-gl-js - Mapbox-gl-js 过滤标记簇

我们现在可以在 gl-js 中对标记进行聚类:

https://www.mapbox.com/mapbox-gl-js/example/cluster/

在 mapbox-gl-js 中的聚类中是否有与标记过滤器等效的方法,如本示例中的传单:

https://www.mapbox.com/mapbox.js/example/v1.0.0/filtering-marker-clusters/

0 投票
2 回答
1844 浏览

javascript - 在 mapbox gl 中单击突出显示功能

我有一个 geojson 街道层,鼠标悬停时会突出显示。

我现在的目标是通过点击事件突出显示个别街道为红色。一次只能突出显示一条街道,并且应该保持突出显示,直到单击另一条街道。

关于需要在以下代码中添加什么的任何想法?

0 投票
0 回答
640 浏览

javascript - Mapbox GL JS 线层在移动设备上的渲染问题

我设置了一个本地矢量切片服务,它以 MapBox protobuf 格式提供矢量切片数据。我还使用 Mapbox GL JS 编写了一个简单的 JS 客户端来显示矢量瓦片数据。

在我的桌面浏览器上一切都很好。但是,当我在移动浏览器(各种设备)上打开客户端应用程序时,其中一些存在渲染问题 - 看起来线条层的 z 级别有问题(屏幕附在底部)。

为简化起见,我将发布仅显示 protobuf 切片的代码,这些切片在切片边框、水平线和垂直线处带有线条。问题仍然存在,与“真实”地图数据相同。

问题不是特定于浏览器的。它在 2 部手机上的移动 chrome 和 Firefox 上都被发现:小米 Redmi Note2 和一些屏幕分辨率非常高的三星。在带有 Chrome 的 Xperia Z1 上渲染没问题。在桌面浏览器上渲染是可以的。

还有一件事 - 我从 MapBox 示例页面检查了矢量平铺示例,它在任何地方都可以渲染。

问题):

也许有 MapBox protobuf / GL JS lib 经验的人知道可能出了什么问题?也许样式缺少一些设置......或者 GL JS 库对它所提供的矢量平铺 pbf 数据有一些不明显的要求?

客户端应用代码:

生成 pbf 内容的 Java 类:

截图

桌面浏览器 - 一切正常:

桌面浏览器 - 一切正常

移动浏览器 - 线条消失:

移动浏览器 - 线条消失

0 投票
1 回答
151 浏览

mapbox-gl-js - 获取过滤后地图上显示的要素数量(使用 featuresIn)

首先,我知道这querySourceFeatures可以解决这个问题。但不幸的是,新版本对所有类型都有效,但对我正在使用的符号无效。所以我仍然在 0.14.x 版本下进行编码。

也就是说,我使用该setFilter函数过滤了我的地图,并且我需要在过滤完成后恢复显示的要素数量。我想过将整个世界(-90,-180,90,180)地图坐标转换为像素,然后将其传递给featuresIn函数。

使用下面的小提琴, featuresIn 什么都不返回[编辑:那是由于没有设置interacive : true,现在已经完成但问题仍然存在]。您知道如何获取地图上显示的要素数量吗?

编辑:请找到我的 jsFiddle:https ://jsfiddle.net/y7hoa0gy/7/

0 投票
0 回答
1549 浏览

javascript - Mapbox GL js 3D高程剖面

我正在将我的网站从 Mapbox.js 转换为 Mapbox GL js。

在旧版本中,我将这个出色的示例用于“3D”高程剖面:

Mapbox.js 高程配置文件 https://www.mapbox.com/blog/dc-bikeshare-revisited/

现在,对于 Mapbox GL js,地图旋转和俯仰很容易。垂直立面条并非如此。到目前为止,我唯一的想法是添加带有 CSS 样式的标记作为垂直条。然后,这些当然会从 Mapbox GL js 作为精灵添加到 WebGL 引擎中,并且即使在地图被倾斜和旋转时也保持面向客户端。这行得通吗?

我不想失去这个出色的 3D 功能。任何其他想法如何在不编写 mapbox GL js 插件直接访问/修改场景对象的情况下实现这一点?

0 投票
2 回答
1876 浏览

mapbox - mapboxgl中的标记聚类基于聚合值而不是点数

我一直在研究 MapBox GL ( https://www.mapbox.com/mapbox-gl-js/example/cluster/ ) 中的聚类标记,但我希望做的有点不同。

从本质上讲,我有一个 geojson 文件,其中包含我们校园内每个建筑物(点)的事件计数。我想在标记中显示该数字,然后当缩小时,标记折叠并将该标记的值加在一起。

我看到的聚类示例只是计算点数,但似乎没有提供聚合属性。这样的事情可行吗?

0 投票
1 回答
812 浏览

mapbox - 如何使用最新的 MapBox Studio 风格

如果这是一个明显的问题,我深表歉意,但我有tileset(矢量图层)ID“fedex1.9iw8f8pj”,我正在尝试以一种风格使用它。

风格见

https://api.mapbox.com/styles/v1/fedex1/cimjgbe1i0087g4nskorn50pd.html?title=true&access_token=pk.eyJ1IjoiZmVkZXgxIiwiYSI6ImNpam5jZXZvczAwZnd0b201ajhybXE0OW8ifQ.IumX7VWjU71UjEsKTN4bdw#20/40.669883372111315/-73.89544420452764/0

我没有看到“parking-regulation-shapefile”层。

查看图块集:

图像显示 x 和 y 位置

图像显示 x 和 y 位置

然而,在样式中,我看不到 x 和 y 位置:

在此处输入图像描述

为什么这里没有缩放级别?:

在此处输入图像描述

当我以我看到的样式“选择数据”时:

在此处输入图像描述

我想在某个缩放级别显示 x,y 点和可能的 SIGNDESC1。

(我认为可以显示访问令牌,因为它在 javascript 源中)

0 投票
2 回答
3814 浏览

mapbox-gl-js - 使用带有 mapbox-gl-js 的过滤器显示/隐藏功能

我正在使用 mapbox 进行室内项目,我正在寻找一种方法来显示/隐藏具有特定属性的特征(楼层)level=x。在 mapboxjs 的第一个版本中,可以使用这个. 现在在 GL 版本中,我可以使用过滤器轻松显示/隐藏图层,但这不是我的目标,因为图层已经定义(房间、走廊、楼梯......)并且不依赖于楼层:

我可以查询我想使用哪些功能:

但我没有找到显示/隐藏返回功能的方法。

有关信息:indoorSource 是来自网络服务器的矢量图块:

提前致谢,

蒂博

0 投票
1 回答
1816 浏览

cors - 从 localhost 访问 mapbox 时出现 cors 问题

我在本地机器上测试一个简单的 mapbox 示例时收到以下消息(在端口 localhost:8000 上使用 python SimpleHTTPServer 提供服务):

10:06:53.909 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://a.tiles.mapbox.com/v4/mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7/[...]. (Reason: CORS request failed).1 <unknown>

html文件很简单:

我正在从 Firefox 查看,尝试禁用 CORS 策略,我正在失去信心,天哪,它应该如此简单!非常感谢任何帮助!

编辑:如果我调用 mapzen 或 osm2vectortile 服务会遇到同样的问题,所以 mapbox 不是问题,似乎是一个通用的 cors 问题

0 投票
1 回答
248 浏览

angularjs - 创建新地图实例后 Mapboxgl setSyle 未定义

mapboxgl.Map在我的单元测试中,在某些情况下创建方法的新实例后map.setStyle是未定义的。单元测试正在运行 angular 1.5 + karma jasmine。我正在使用最新版本的 mapboxgl。

在指令中创建映射时,map.setStyle定义,例如:

在测试中创建时,map.setStyle未定义,例如:

第二个实例应该工作,任何想法为什么它失败?