Swift 4 MKMapView改变了GoogleMap的地图风格

时间:2018-01-04 11:13:04

标签: ios google-maps mapkit mkmapview swift4

我在我的应用程序中使用MKMapView。现在我想将地图样式更改为黑暗主题。

在GoogleMap中,我们可以更改地图的样式。那么我怎样才能在MKMapView中实现风格。

请帮帮我。

4 个答案:

答案 0 :(得分:1)

您可以使用Dark Theme MapView 中获得Google Maps API。 请查看此文档,了解MapView https://developers.google.com/maps/documentation/ios-sdk/styling的样式。

使用 Google Maps API样式向导,您可以自定义主题,道路,标签等。然后将新文件添加到名为style.json的项目中并粘贴此自定义样式。

请参阅以下链接以选择地图主题,例如Standard, Dark, Silver, Night, Retro等。请查看https://mapstyle.withgoogle.comMapView创建地图样式。

这是GitHub上的sample repository,它演示了使用MapView样式。另见medium post

答案 1 :(得分:1)

您可以尝试此github存储库。

https://github.com/fmo91/MapKitGoogleStyler

答案 2 :(得分:0)

在MKMapView中,您无法更改苹果的地图主题。您可以更改地图类型: 卫星示例:

self.mapView?.mapType = .satellite

您还可以使用其他提供商提供的图块。

class YourMapViewController: UIViewController, MKMapViewDelegate {

    @IBOutlet var mapView : MKMapView?

    override func viewDidLoad() {
        super.viewDidLoad()

        self.mapView?.delegate = self
        self.tilesRenderer.reloadData()
        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    lazy var tilesRenderer : MKTileOverlayRenderer! = {

        let urlTemplate = "The tiles URL"  // URL template is a string where the substrings "{x}", "{y}", "{z}", and "{scale}" are replaced with values from a tile path to create a URL to load. For example: http://server/path?x={x}&y={y}&z={z}&scale={scale}.
        let overlay = MKTileOverlay.init(urlTemplate: urlTemplate)
        overlay.isGeometryFlipped = false
        overlay.canReplaceMapContent = true
        self.mapView?.add(overlay, level: MKOverlayLevel.aboveLabels)

        let renderer = MKTileOverlayRenderer.init(tileOverlay: overlay)
        return renderer
    }()

    public func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer{

        return self.tilesRenderer
    }
}

另一种选择可能是使用GoogleMap iOS SDK: GoogleMaps iOS SDK

答案 3 :(得分:0)

您可以从时髦的地图中获取太多自定义样式的json文件

https://snazzymaps.com/