我的目标是显示邮政编码或邮政编码使用Mapbox的iOS软件开发工具包为美国唯一的邮政编码;
我目前能够显示邮政编码和国际邮政编码的边界,例如“USP 227518”,而实际上我想显示“27518”
我试过使用mapboxMap.queryRenderedFeatures()
,并能够成功地显示修改后的字符串值,但这并没有解决我的问题,因为我需要显示前缀为'USP 2'的长邮政编码,以便它找到功能并显示没有前缀的Map注解。这会造成视觉上的重叠
我还尝试了'mapboxMap.querySourceFeatures()',但无法从任何源检索任何数据
下面是我用来显示MapBox给出的邮政编码的代码
try mapboxMapView.mapboxMap.style.updateLayer(withId: MapConstants.symbolLayerIdentifier, type: SymbolLayer.self) { layer in
layer.textField = .expression(Expression(.number) {
Exp(.get) { "id" }
zipCodes // Array of strings all with 'USP2' prefix
Exp(.get) { "id" }
""
})
}
字符串
是否有某种方法可以删除前缀或从源points_postal_2
查询源特性以获得邮政编码点?
我也不知道Exp(.get) { "id" }
来自哪里。我最好的猜测是它来自这里https://docs.mapbox.com/data/boundaries/reference/feature-lookup-tables/。即使我从zipCodes字符串数组值中删除了'USP 2'前缀,该文档中的unit_code
也不能代替“id”
如何在Map上显示邮政编码?
1条答案
按热度按时间7nbnzgx91#
没有文档的MapBox iOS SDK是一个棘手的库。
Slice是我所需要的,以及如何使用它,很好的问题,它没有文档,也没有任何例子似乎存在!
https://docs.mapbox.com/ios/maps/api/10.14.0/Structs/Expression/Operator.html#/s:10MapboxMaps10ExpressionV8OperatorO5sliceyA2EmF
字符串