如何为ios应用创建简约地图

问题描述 投票:-1回答:1

如何实现与屏幕截图相同的地图?

我发现了MKMapView的自定义叠加层,但我不确定这是改变所有地图的好方法。

你可能对此有一些想法吗?

enter image description here

ios swift google-maps mapkit mkmapview
1个回答
1
投票

我不熟悉是否有更好的解决方案来实现这一目标。我正在使用您在问题中提到的叠加层。

您可以在https://mapstyle.withgoogle.com/以自己的美丽风格自定义叠加

您将获得用于自定义的JSON,包括您的应用程序密钥,您可以在应用程序中使用它。

在你的应用程序中

import GoogleMaps

@IBOutlet weak var viewMap: GMSMapView!
public let kMapStyle = "[{\"elementType\": \"geometry\", \"stylers\": [ { \"color\": \"#f5f5f5\" } ] },{\"elementType\": \"labels.icon\",\"stylers\": [{\"visibility\": \"on\"}]},{\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#616161\"}]},{\"elementType\": \"labels.text.stroke\",\"stylers\": [{\"color\": \"#f5f5f5\"}]},{\"featureType\": \"administrative.land_parcel\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#bdbdbd\"}]},{\"featureType\": \"poi\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#eeeeee\"}]},{\"featureType\": \"poi\",\"featureType\":\"poi.business\",\"stylers\": [{\"visibility\": \"on\"}],\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#757575\"}]},{\"featureType\": \"poi.park\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#e5e5e5\"}]},{\"featureType\": \"poi.park\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#9e9e9e\"}]},{\"featureType\": \"road\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#ffffff\"}]},{\"featureType\": \"road.arterial\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#757575\"}]},{\"featureType\": \"road.highway\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#dadada\"}]},{\"featureType\": \"road.highway\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#616161\"}]},{\"featureType\": \"road.local\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#9e9e9e\"}]},{\"featureType\": \"transit.line\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#e5e5e5\"}]},{\"featureType\": \"transit.station\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#eeeeee\"}]},{\"featureType\": \"water\",\"elementType\": \"geometry\",\"stylers\": [{\"color\": \"#c9c9c9\"}]},{\"featureType\": \"water\",\"elementType\": \"labels.text.fill\",\"stylers\": [{\"color\": \"#9e9e9e\"}]}]"
//YOUR JSON FOR STYLE

override func viewDidLoad() {
    super.viewDidLoad()
    do {
        viewMap.mapStyle = try GMSMapStyle(jsonString: kMapStyle)
    } catch {
        NSLog("One or more of the map styles failed to load. \(error)")
    }
}

如果这有助于您或在实施时遇到任何其他问题,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.