问题标签 [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.
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/
javascript - 在 mapbox gl 中单击突出显示功能
我有一个 geojson 街道层,鼠标悬停时会突出显示。
我现在的目标是通过点击事件突出显示个别街道为红色。一次只能突出显示一条街道,并且应该保持突出显示,直到单击另一条街道。
关于需要在以下代码中添加什么的任何想法?
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 类:
截图:
桌面浏览器 - 一切正常:
移动浏览器 - 线条消失:
mapbox-gl-js - 获取过滤后地图上显示的要素数量(使用 featuresIn)
首先,我知道这querySourceFeatures
可以解决这个问题。但不幸的是,新版本对所有类型都有效,但对我正在使用的符号无效。所以我仍然在 0.14.x 版本下进行编码。
也就是说,我使用该setFilter
函数过滤了我的地图,并且我需要在过滤完成后恢复显示的要素数量。我想过将整个世界(-90,-180,90,180)地图坐标转换为像素,然后将其传递给featuresIn
函数。
使用下面的小提琴, featuresIn 什么都不返回[编辑:那是由于没有设置interacive : true
,现在已经完成但问题仍然存在]。您知道如何获取地图上显示的要素数量吗?
编辑:请找到我的 jsFiddle:https ://jsfiddle.net/y7hoa0gy/7/
javascript - Mapbox GL js 3D高程剖面
我正在将我的网站从 Mapbox.js 转换为 Mapbox GL js。
在旧版本中,我将这个出色的示例用于“3D”高程剖面:
https://www.mapbox.com/blog/dc-bikeshare-revisited/
现在,对于 Mapbox GL js,地图旋转和俯仰很容易。垂直立面条并非如此。到目前为止,我唯一的想法是添加带有 CSS 样式的标记作为垂直条。然后,这些当然会从 Mapbox GL js 作为精灵添加到 WebGL 引擎中,并且即使在地图被倾斜和旋转时也保持面向客户端。这行得通吗?
我不想失去这个出色的 3D 功能。任何其他想法如何在不编写 mapbox GL js 插件直接访问/修改场景对象的情况下实现这一点?
mapbox - mapboxgl中的标记聚类基于聚合值而不是点数
我一直在研究 MapBox GL ( https://www.mapbox.com/mapbox-gl-js/example/cluster/ ) 中的聚类标记,但我希望做的有点不同。
从本质上讲,我有一个 geojson 文件,其中包含我们校园内每个建筑物(点)的事件计数。我想在标记中显示该数字,然后当缩小时,标记折叠并将该标记的值加在一起。
我看到的聚类示例只是计算点数,但似乎没有提供聚合属性。这样的事情可行吗?
mapbox - 如何使用最新的 MapBox Studio 风格
如果这是一个明显的问题,我深表歉意,但我有tileset(矢量图层)ID“fedex1.9iw8f8pj”,我正在尝试以一种风格使用它。
风格见
我没有看到“parking-regulation-shapefile”层。
查看图块集:
图像显示 x 和 y 位置
然而,在样式中,我看不到 x 和 y 位置:
为什么这里没有缩放级别?:
当我以我看到的样式“选择数据”时:
我想在某个缩放级别显示 x,y 点和可能的 SIGNDESC1。
(我认为可以显示访问令牌,因为它在 javascript 源中)
mapbox-gl-js - 使用带有 mapbox-gl-js 的过滤器显示/隐藏功能
我正在使用 mapbox 进行室内项目,我正在寻找一种方法来显示/隐藏具有特定属性的特征(楼层)level=x
。在 mapboxjs 的第一个版本中,可以使用这个. 现在在 GL 版本中,我可以使用过滤器轻松显示/隐藏图层,但这不是我的目标,因为图层已经定义(房间、走廊、楼梯......)并且不依赖于楼层:
我可以查询我想使用哪些功能:
但我没有找到显示/隐藏返回功能的方法。
有关信息:indoorSource 是来自网络服务器的矢量图块:
提前致谢,
蒂博
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 问题
angularjs - 创建新地图实例后 Mapboxgl setSyle 未定义
mapboxgl.Map
在我的单元测试中,在某些情况下创建方法的新实例后map.setStyle
是未定义的。单元测试正在运行 angular 1.5 + karma jasmine。我正在使用最新版本的 mapboxgl。
在指令中创建映射时,map.setStyle
定义,例如:
在测试中创建时,map.setStyle
未定义,例如:
第二个实例应该工作,任何想法为什么它失败?