添加到谷歌地图的样式功能

时间:2018-01-09 03:02:33

标签: ios swift google-maps geojson google-maps-sdk-ios

我通过解析GeoJSON为我的GMSMapView添加了一个功能。然而,我在弄清楚如何设计这个功能时遇到了极大的麻烦。

目前,该功能是默认的蓝色笔触和半透明蓝色填充。我想改变这些颜色。我试着看the documentation,但它没有用。我能找到的互联网上的所有其他问题都与JavaScript API有关。

如何在我的Google地图上设置特定功能的样式 - 仅限我的GeoJSON文件中的功能?优选地,这将是动态的,但不一定如此。

1 个答案:

答案 0 :(得分:4)

这让我猜了很多,因为据我所知,没有相关的文档 - 至少没有一个可以轻松访问。

功能的style元素(如GMUGeometryContainer)是GMUStyle。这是它的初始化器:

GMUStyle(styleID:stroke:fill:width:scale:heading:anchor:iconUrl:title:hasFill:hasStroke:)

例如,我可能会解析我的GeoJSON并为这样的特定功能添加样式:

parser = GMUGeoJSONParser(url: overlayUrl)
parser.parse()
renderer = GMUGeometryRenderer(map: map, geometries: parser.features)
parser.features.first!.style = GMUStyle(styleID: "feat_1", stroke: UIColor.red, fill: UIColor(white: 1, alpha: 0.8), width: 2, scale: 1, heading: 1, anchor: CGPoint.zero, iconUrl: nil, title: nil, hasFill: true, hasStroke: true)
renderer.render()

说实话,我不知道anchor会发生什么变化,headingscale - 这对我来说也不重要,也不适合你。当缩放,平移,旋转或倾斜时,该功能的样式将按预期显示,而无需您进行任何其他更改。

如果有人可以在这个不起眼的课程上添加更多细节,那么这对于这个答案或者一个全新的答案来说会很棒。