MapBox iOS,如何突出显示某个国家/地区?或切换图层可见性?

时间:2016-05-26 13:22:52

标签: ios mapbox

我正在尝试突出显示MapBox iOS中的特定国家/地区。

我的mapbox正常工作,可以在我的应用中显示自己的样式地图。

我已按照以下说明操作: https://www.mapbox.com/help/style-single-country/ 并创建了一个新的图层,在MapBox Studio中正确显示突出显示的国家/地区,但我无法弄清楚如何在我的应用程序代码中打开和关闭此图层,并且(希望)如何传递参数以便它知道哪个国家/地区为了突出。

这甚至可能吗?或者我不是以正确的方式解决这个问题?

2 个答案:

答案 0 :(得分:1)

从Mapbox iOS SDK v3.3.0开始,尚无法修改样式的图层属性 - 这是一个我们称之为“运行时样式API”的功能,它是一个我们仍在努力的长期项目。您可以阅读有关此未来功能及其进展的更多信息on GitHub

RobLab建议有两种不同的风格是今天实现这一目标的一种方法,但并不总是站得住脚,因为你需要为每个突出显示的功能设置风格。 CustomStyleLayer并非用于此目的,一般不受支持。

另一种方法是使用MGLPolygon将国家/地区形状添加为注释。

答案 1 :(得分:0)

我有两个可能有用的想法

  1. 通过设置styleURL属性来换出图层。这需要两个样式(一个基础层,一个基础层+国家),因此可能不太理想。

    // Swift code example
    self.mapView.styleURL = NSURL(string: self.styleCountry)
    
  2. 按照Mapbox iOS演示应用模型进行自定义图层。看起来真的很难。

  3. 我检查了Mapbox iOS demo app source code并看到他们有一些演示Objective-C代码来执行自定义图层。

    [self.mapView insertCustomStyleLayerWithIdentifier:@"mbx-custom" ...]