我在我的应用程序中使用MKMapView。现在我想将地图样式更改为黑暗主题。
在GoogleMap中,我们可以更改地图的样式。那么我怎样才能在MKMapView中实现风格。
请帮帮我。
答案 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.com为MapView
创建地图样式。
这是GitHub上的sample repository,它演示了使用MapView样式。另见medium post
答案 1 :(得分:1)
您可以尝试此github存储库。
答案 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文件