MapBox iOS,如何突出显示一个国家?或切换图层可见性?
MapBox iOS, how do I highlight a country? Or toggle layer visibility?
我试图在 MapBox 中突出显示特定国家/地区 iOS。
我让 mapbox 正常工作以在我的应用程序中显示我自己的样式化地图。
我已遵循以下说明:
https://www.mapbox.com/help/style-single-country/
并在 MapBox Studio 在线创建了一个正确显示突出显示国家/地区的新图层,但我无法弄清楚如何在我的应用程序代码中打开和关闭此图层,以及(希望如此)如何传递参数以便它知道哪个国家/地区为了突出。
这可能吗?或者我不是以正确的方式处理这个问题吗?
我有两个想法可能有用
通过设置 styleURL
属性 交换图层。这需要两种样式(一种基础层,一种具有基础层 + 国家/地区),因此可能并不理想。
// Swift code example
self.mapView.styleURL = NSURL(string: self.styleCountry)
遵循自定义图层的 Mapbox iOS 演示应用程序模型。不过看起来真的很难。
我查看了 Mapbox iOS demo app source code,发现他们有一些演示 Objective-C 代码可以执行自定义层。
[self.mapView insertCustomStyleLayerWithIdentifier:@"mbx-custom" ...]
从 Mapbox iOS SDK v3.3.0 开始,还不能修改样式的图层属性——这是我们称之为“运行时样式 API”的功能,它是一个长期的我们仍在努力的项目。您可以阅读有关此未来功能及其进展的更多信息 on GitHub。
RobLab 建议使用两种不同的样式是今天实现此目的的一种方法,但并不总是可行,因为您需要为每个突出显示的功能使用一种样式。 CustomStyleLayer
不适用于此目的,通常不受支持。
另一种方法是使用 MGLPolygon 添加国家形状作为注释。
我试图在 MapBox 中突出显示特定国家/地区 iOS。
我让 mapbox 正常工作以在我的应用程序中显示我自己的样式化地图。
我已遵循以下说明: https://www.mapbox.com/help/style-single-country/ 并在 MapBox Studio 在线创建了一个正确显示突出显示国家/地区的新图层,但我无法弄清楚如何在我的应用程序代码中打开和关闭此图层,以及(希望如此)如何传递参数以便它知道哪个国家/地区为了突出。
这可能吗?或者我不是以正确的方式处理这个问题吗?
我有两个想法可能有用
通过设置
styleURL
属性 交换图层。这需要两种样式(一种基础层,一种具有基础层 + 国家/地区),因此可能并不理想。// Swift code example self.mapView.styleURL = NSURL(string: self.styleCountry)
遵循自定义图层的 Mapbox iOS 演示应用程序模型。不过看起来真的很难。
我查看了 Mapbox iOS demo app source code,发现他们有一些演示 Objective-C 代码可以执行自定义层。
[self.mapView insertCustomStyleLayerWithIdentifier:@"mbx-custom" ...]
从 Mapbox iOS SDK v3.3.0 开始,还不能修改样式的图层属性——这是我们称之为“运行时样式 API”的功能,它是一个长期的我们仍在努力的项目。您可以阅读有关此未来功能及其进展的更多信息 on GitHub。
RobLab 建议使用两种不同的样式是今天实现此目的的一种方法,但并不总是可行,因为您需要为每个突出显示的功能使用一种样式。 CustomStyleLayer
不适用于此目的,通常不受支持。
另一种方法是使用 MGLPolygon 添加国家形状作为注释。