问题标签 [mapbox-gl]

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

android - Mapbox 离线和同步

感谢 Mapbox 团队提供最新的离线支持(请参阅android 支持

一个问题:如果您想要离线支持,但您还希望对 mapbox 服务器端数据的任何更新与之前保存的客户端离线版本同步,那是自动支持吗?

换句话说,

  • 客户 A 在 DAY 1 保存一个离线区域
  • mapbox 服务器上的数据在 DAY 2 更新
  • 客户 A 在第 3 天上线了一段时间,正在查看他们的离线区域
  • 客户端 A 会看到服务器更新或其先前保存的区域。

他们似乎会看到以前保存的区域,而看不到更新。

如果是这样,是否有一种同步模式,该区域将离线工作,但在线时也会接收更新并从那时起离线存储?

用例是用户连接不良,但偶尔连接并想要最新数据而无需明确重新下载。

如果不支持,我们程序员可以轻松完成吗:)

0 投票
3 回答
8151 浏览

javascript - Mapbox-GL setStyle 移除图层

我正在使用 Mapbox-GL 构建地图 Web 应用程序。它有很多很酷的功能。我已经按照Mapbox 网站上的示例设置了切换基本地图(即卫星、地形等)的按钮。

我遇到的问题是,当我更改样式时,它会删除作为图层加载的多边形并重新加载地图。我根据用户查询从 Mongo 数据库中加载多边形作为图层。我希望能够更改基本地图并保留这些图层。

有没有办法在不重新加载地图或至少不删除图层的情况下更改样式?

这是我的切换器代码,与示例相同,但我为自定义样式添加了条件:

0 投票
2 回答
1844 浏览

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

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

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

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

0 投票
1 回答
12576 浏览

mapbox - Mapbox GL setData 使用多个标记更新图层

我有一个 Mapbox GL 地图,其中有一个图层和该图层上的多个标记,我正在尝试更新特定标记,因此我使用 setData 仅更新一个标记,但 setData 将重置整个图层标记以仅添加该标记我正在尝试更新为整个图层上的单个标记,从而删除所有旧标记。

通过尝试以 GEOJson 格式添加多个标记作为 GEOJson 对象数组,如下所示,我收到错误:

代码:

如果有人可以通过告诉我我做错了什么/在这里丢失来帮助我,将非常感激,谢谢

0 投票
1 回答
447 浏览

ios - Mapbox iOS SDK 3.1 如何使注释标注具有粘性

我刚开始在 iOS 中开发。很抱歉,如果问题似乎微不足道:

我通过 SwiftyJSON 从 API 加载几个标记/注释,并将它们显示在 Mapbox MapView 上。单击注释时会触发标注。- 这工作得很好,很容易。问题:我想将 mapView 放在标记/注释和标注的中心,或者移动相机以将它们显示在中心,放大。每当我使用这样的东西时:

或者

标注只是保持在相同的位置。我想要实现的是,它显示在注释/标记的顶部。

这是我这部分的完整代码(不包括在 viewdidload 中构建注释:

我也想过使用完成处理程序,但不明白它是如何工作的。非常感谢帮助!

0 投票
1 回答
949 浏览

swift - 在 for 循环中的 mapbox 中添加自定义标记

我有点卡在这里…

我正在尝试为我的 mapbox 视图中的每个标记添加不同的图像。为了填充地图,我使用了一个查看数组的 for 循环:

到目前为止,一切都很好。问题是,添加我在网上找到的特定图像的唯一方法是:

我添加将其放在循环之外,因此,它不适用于每个标记。

还有另一种方法吗?

0 投票
1 回答
820 浏览

ios - Mapbox 离线存储大小

我正在使用 MGLOfflineStorage 下载切片(默认样式)以供离线使用。下载非常小的区域大约需要 75MB。下载更大的区域大约需要 100MB,这很奇怪。所以看起来实际的图块并没有那么大,而且每个区域都会下载大约 70MB 的一些常见数据或其他东西(字体、图标等)?这是正常的吗?

是否可以将通用数据嵌入到特定样式的应用程序中?或者以某种方式使公共数据更小?

编辑:似乎矢量瓷砖的这种常见尺寸很大程度上取决于样式。我刚刚用基本风格进行了测试,它需要 ~40MB 而不是 ~70MB。

我还使用光栅图块(卫星样式)进行了测试,结论是使用光栅图块更适合较小的区域,而使用矢量图块更适合更大的区域。这是因为光栅图块比矢量图块更多地依赖于区域大小,并且光栅图块没有最初的通用下载。

所以额外的问题是 - 是否可以将街头风格用作光栅图块?

使用 ios-v3.2.0-rc.1

0 投票
0 回答
180 浏览

ios - 使用包含数千个点的折线绘制地图性能

我们正在开发的应用程序需要显示由数十万个点组成的历史运动数据。随着每条折线的点数增加或折线数增加,性能会降低。在这种情况下提高性能的最佳方法是什么?

也许以某种方式将折线烘焙成贴图并将这些作为附加层包括在内?我们目前的目标是 iOS9+,使用 ios-v3.2.0。

0 投票
1 回答
2521 浏览

mapbox - Mapbox GL - 向地图添加方向

我有一个 Mapbox GL 地图,其中有一个图层和该图层上的多个标记,我正在尝试使用 Directions GL 插件在我的应用程序中绘制路线 + 显示路线信息(从起点到目的地的距离/时间/路线)。不幸的是,除了设置起点/目的地(如下所示)以在我的地图上显示路线+路线数据之外,我找不到任何信息。我能找到的唯一可用信息是MapBox GL 行车路线示例中提到的信息,但这不是我真正想要的,因为我不想将起点/目的地显示为 A 和 B 点,也不想显示 A/B 点搜索框,如上面的 mapbox.com 示例。

有人可以告诉我我在这里缺少什么以及如何在起点/目的地之间绘制路线,使用 Mapbox GL 插件显示路线信息来帮助我吗?谢谢

0 投票
1 回答
414 浏览

javascript - 指定返回的 getPaintProperty 方法 Mapbox gl

我想返回图层的填充颜色,以便它可以用作变量来填充可打印地图上的动态图例,该地图正在构建为单独的文档。

浏览器只会选择十六进制颜色,但getPaintProperty返回 hsl。我知道 Mapbox 根据样式/图层保存这些信息,我只是不知道如何访问它。

有没有办法返回图层填充颜色的十六进制值?

这是我用来访问每个图层填充颜色的通用代码;

我目前的替代方法是使用额外的库来执行转换。