私は現在、場所を使ってiOSアプリケーションを開発中です。 しかし、MapKitのデフォルトマップではなく、ユーザーの位置を表示するためのカスタマイズされたマップを用意したいと思います。Swiftのカスタムマップ
例えば、このようなマップ:
それはスウィフト4.0でこのような何かを達成することは可能ですか?あなたはMKTileOverlay
を使用する必要が
どうもありがとう
私は現在、場所を使ってiOSアプリケーションを開発中です。 しかし、MapKitのデフォルトマップではなく、ユーザーの位置を表示するためのカスタマイズされたマップを用意したいと思います。Swiftのカスタムマップ
例えば、このようなマップ:
それはスウィフト4.0でこのような何かを達成することは可能ですか?あなたはMKTileOverlay
を使用する必要が
どうもありがとう
- ドキュメントはhereです...
それが言うように:
あなたがあなた自身のタイルベースのコンテンツを表現するためにタイルオーバーレイオブジェクトを使用しを を開き、そのコンテンツの表示をマップビューで調整します。 のタイルは、基礎となる地図コンテンツを補完することができます。は、 を完全にに置き換えます。
(私の強調)
これは、マップがあなたのライブの現在位置を表示させることができる方法です。
全コード:あなたも権限があるInfo.plistファイル に権限を追加することが必要であること
import UIKit
import MapKit
//import CoreLocation
class ViewController: UIViewController, UIScrollViewDelegate ,CLLocationManagerDelegate, MKMapViewDelegate {
@IBOutlet var map: MKMapView!
var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let userLocation: CLLocation = locations[0]
let latitude = userLocation.coordinate.latitude
let longitude = userLocation.coordinate.longitude
let latDelta: CLLocationDegrees = 0.05
let lonDelta: CLLocationDegrees = 0.05
let span = MKCoordinateSpan(latitudeDelta: latDelta, longitudeDelta: lonDelta)
let location = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
let region = MKCoordinateRegion(center: location, span: span)
self.map.setRegion(region, animated: false)
let annotation = MKPointAnnotation()
annotation.coordinate = location
annotation.title = "My current Location"
map.addAnnotation(annotation)
}
}
注:
プライバシー - 場所使用時には使用説明
プライバシー - 場所常に使用説明
固定位置とピンをマップビューに表示する方法は次のとおりです
import UIKit
import MapKit
class ViewController: UIViewController {
@IBOutlet weak var myMap: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
let latitude : CLLocationDegrees = 86.44999
let longitude : CLLocationDegrees = 54.39
let latitudeDelta : CLLocationAccuracy = 0.05
let longituteDelta : CLLocationAccuracy = 0.05
let myLocation = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
let mySpan = MKCoordinateSpanMake(latitudeDelta, longituteDelta)
let myRegion = MKCoordinateRegion(center: myLocation, span: mySpan)
myMap.setRegion(myRegion, animated: true)
let annotation = MKPointAnnotation()
annotation.coordinate = myLocation
myMap.addAnnotation(annotation)
}
}