gpt4 book ai didi

ios - 在 openstreetmap 多边形中间显示标记(iOS)

转载 作者:行者123 更新时间:2023-11-28 23:41:16 24 4
gpt4 key购买 nike

我正在尝试创建一个显示 child Playground 的应用程序。我发现开放街道 map 实际上有很好的数据。

所以我使用了 http://overpass-turbo.eu提取数据。

然后我使用 Mapbox 来显示数据。不幸的是,我是 openstreetmap 和相关 SDK 的初学者。

我遇到的问题是其中一些公园是多边形。我只想能够在公园所在的 map 上显示标记,而不是绘制公园的形状。

我按照 mapbox 中的本教程在数据点上显示圆圈,但它在多边形的每个坐标上绘制了一个圆圈...

那么我怎样才能告诉 mapbox 在多边形的中心只添加一个图像?我是否必须修改从立交桥获得的数据?我可以以不同方式查询天桥以仅获取质心吗?

谢谢各位指点

编辑我被要求添加代码。实际上代码还没有太多,所以我认为它在这里没有多大值(value),因为我在问什么是解决问题的最佳方法。这是添加包含数据的源的委托(delegate)(快速)

    func mapView(_ mapView: MGLMapView, didFinishLoading style: MGLStyle) {

let source = MGLVectorTileSource(identifier: "export-ddqmvm", configurationURL: URL(string: "mapbox://mobdesign.9zilzleo")!)
style.addSource(source)

let layer = MGLCircleStyleLayer(identifier: "landmarks", source: source)
layer.sourceLayerIdentifier = "export-ddqmvm"
layer.circleColor = NSExpression(forConstantValue: #colorLiteral(red: 0.67, green: 0.28, blue: 0.13, alpha: 1))
layer.circleOpacity = NSExpression(forConstantValue: 0.8)
style.addLayer(layer)

}

这也是我从以下代码获得的教程:https://www.mapbox.com/help/ios-dds-circle-layer/

最佳答案

我终于想通了,如果我使用 MGLSymbolStyleLayer 而不是 MGLCircleStyleLayer,那么符号只会为形状添加一次。达到我想要的效果。

下面是与上述代码匹配的代码:

    let markerLayer = MGLSymbolStyleLayer(identifier: "playgrounds", source: source)
markerLayer.sourceLayerIdentifier = "export-ddqmvm"
markerLayer.iconImageName = NSExpression(forConstantValue: "mapMarker")
markerLayer.iconAnchor = NSExpression(forConstantValue: "bottom")
markerLayer.iconAllowsOverlap = NSExpression(forConstantValue: "YES")

style.addLayer(markerLayer)
style.setImage(UIImage(named: "mapMarker")!, forName: "mapMarker")

希望能帮到别人

关于ios - 在 openstreetmap 多边形中间显示标记(iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53345744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com