我正在尝试突出显示MapBox iOS中的特定国家/地区。
我的mapbox正常工作,可以在我的应用中显示自己的样式地图。
我已按照以下说明操作: https://www.mapbox.com/help/style-single-country/ 并创建了一个新的图层,在MapBox Studio中正确显示突出显示的国家/地区,但我无法弄清楚如何在我的应用程序代码中打开和关闭此图层,并且(希望)如何传递参数以便它知道哪个国家/地区为了突出。
这甚至可能吗?或者我不是以正确的方式解决这个问题?
答案 0 :(得分:1)
从Mapbox iOS SDK v3.3.0开始,尚无法修改样式的图层属性 - 这是一个我们称之为“运行时样式API”的功能,它是一个我们仍在努力的长期项目。您可以阅读有关此未来功能及其进展的更多信息on GitHub。
RobLab建议有两种不同的风格是今天实现这一目标的一种方法,但并不总是站得住脚,因为你需要为每个突出显示的功能设置风格。 CustomStyleLayer
并非用于此目的,一般不受支持。
另一种方法是使用MGLPolygon将国家/地区形状添加为注释。
答案 1 :(得分:0)
我有两个可能有用的想法
通过设置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" ...]