Festlegen der Karte zusammen mit dem aktuellen Standort des Benutzers für osx

während

Begrüßungsprofis,

Wie ich weiß, können wir eine Karte erstellen, indem wir Google Map API für IOS wie den folgenden Code verwenden.

import UIKit
import GoogleMaps
/* For cocoa:
   Import Cocoa
   Import MapKit
*/
   class ViewController: NSViewController, CLLocationManagerDelegate {

@IBOutlet var mapView: MKMapView!
var locationManager = CLLocationManager()
var didFindMyLocation = false
var strForCurLatitude = "";
var strForCurLongitude = "";
var currentLocation = locManager.location!


override func viewDidLoad() {
    super.viewDidLoad()

    locationManager.delegate = self
    locationManager.requestWhenInUseAuthorization()
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.distanceFilter = kCLDistanceFilterNone
    locationManager.startUpdatingLocation()
}

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
    if status == .authorizedWhenInUse {
        print("User allowed us to access location")
    }
}
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
    print("Error while get location \(error)")
}

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    let location: CLLocation? = locationManager.location
    let coordinate: CLLocationCoordinate2D? = location?.coordinate
    print(coordinate!)
    print(coordinate!.latitude)
    print(coordinate!.longitude)
    strForCurLatitude = "\(coordinate!.latitude)"
    strForCurLongitude = "\(coordinate!.longitude)"
    let camera = GMSCameraPosition.camera(withLatitude: coordinate!.latitude, longitude: coordinate!.longitude, zoom: 15)
    let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
    mapView.isMyLocationEnabled = true
    self.view = mapView

    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2DMake(coordinate!.latitude, coordinate!.longitude)
    marker.map = mapView
}


override var representedObject: Any? {
    didSet {
    // Update the view, if already loaded.
    }
}
}

Aber als ich die ähnliche Methode für osx ausprobiert habe ( der Unterschied besteht darin, dass ich Mapkit anstelle von Google Map verwende ), heißt es, dass requestWhenInUseAuthorization () 'nicht verfügbar ist . Ich red diesen Thread Wie erhalte ich den Standort des Benutzers? [macOS] aber es scheint ohne klare Lösung zu sein, ob es verfügbar ist, um den aktuellen Standort für osx abzurufen oder nicht. Ist es also nicht möglich, den aktuellen Standort für die macOS / cocoa-App abzurufen? Wenn nicht, wie kann man dann den aktuellen Standort in der Kakao-App ermitteln?

Ich bin mir ziemlich sicher, dass viele Xcode-Programmierer wie ich versucht haben, dieses Problem zu lösen. Jede Antwort, die Sie bekommen, wird eine große Anerkennung bekommen. :) :)

Papa

requestWhenInUseAuthorization ist unter macOS nicht verfügbar.

Hier ist die Quelle für eine NSViewController-Unterklasse, die unter macOS 10.13.6 erfolgreich nach dem Standortmanager und dem aktuellen Standort in Xcode 10.1 sucht:

import Cocoa
import MapKit
import CoreLocation

class MapViewController: NSViewController, CLLocationManagerDelegate {

    @IBOutlet weak var mapView: MKMapView!
    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()

        locationManager.delegate = self
        locationManager.startUpdatingLocation()
    }

    func locationManager(_ manager: CLLocationManager, 
                        didChangeAuthorization status: CLAuthorizationStatus) {
        print("location manager auth status changed to:" )
        switch status {
            case .restricted:
                print("status restricted")
            case .denied:
                print("status denied")

        case .authorized:
                print("status authorized")
                let location = locationManager.location
                print("location: \(String(describing: location))")

            case .authorizedAlways:
                print("status authorized always")
            case .notDetermined:
                print("status not yet determined")
        }


    }

    func locationManager(_ manager: CLLocationManager, 
                            didFailWithError error: Error) {
        print( "location manager failed with error \(error)" )
    }
}

funktioniert für mich unter macOS, wenn Sie beim ersten Start der App Ja zur Eingabeaufforderung "Standortdienste aktivieren" sagen.

Beachten Sie, dass Sie auch den NSLocationWhenInUseUsageDescriptionEintrag in der Eigenschaftsliste benötigen, wie in der Dokumentation angegeben.

Konsolenausgabe ist (leicht verschleiert):

Der Authentifizierungsstatus des Standortmanagers wurde geändert in: Status noch nicht festgelegt Der Authentifizierungsstatus des Standortmanagers wurde geändert in: Status Autorisierter Standort: Optional (<+ 4X.48, -12X.62632228> +/- 65,00 m (Geschwindigkeit -1,00 mps / Kurs -1,00) @ 03.11.18, 11:42:48 Uhr pazifische Sommerzeit)

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Routenrichtung zwischen dem aktuellen Standort des Benutzers und dem Ziel in der iOS-App zeichnen?

Ich habe die Karte so eingestellt, dass sie sich zum Standort des Benutzers dreht. Wie erlaube ich dem Benutzer, mit der Karte zu interagieren?

Erstellen Sie eine Google-Karte mit dem Standort des Benutzers und reagieren Sie

Zeichnen von MKPolyline, die dem aktuellen Standort des Benutzers folgt

Polylinien in Mapview basierend auf dem aktuellen Standort des Benutzers zeichnen?

Festlegen des aktuellen Benutzers für Django Vanilla CreateView

JavaScript Google Maps API - Im Mittelpunkt steht der Standort des Benutzers, auf dem keine Karte geladen wird

In Google Map mit Pinch zum Vergrößern und Verkleinern mit dem aktuellen Standort als Mittelpunkt der Karte

Android Maps - Wie zentriere ich die Karte automatisch auf den aktuellen Standort des Benutzers?

Fügen Sie die Kamera zur aktuellen Position des Benutzers auf der Karte hinzu

So finden Sie heraus, ob es sich um den aktuellen Standort des Benutzers oder einen ausgewählten Ort auf der Karte handelt

Aktuellen Standort des Benutzers abrufen - Kotlin

Anzeigen von Feldern basierend auf dem aktuellen Standort des Benutzers in Microsoft Power BI

Die Kamera folgt nicht dem aktuellen Standort des Benutzers in Google Maps

Google Map zentriert auf dem aktuellen Standort des Benutzers PLUS Standardstandort als Backup

Google Maps API - Karte auf dem aktuellen Standort des Kunden zentrieren

Wie füge ich eine Schaltfläche hinzu, die zusammen mit dem Bildlauf des Benutzers scrollt?

Was ist der einfachste und robusteste Weg, um den aktuellen Standort des Benutzers auf Android zu ermitteln?

Was ist der einfachste und beste Weg, um den aktuellen Standort des Benutzers auf Android zu ermitteln?

Rufen Sie den aktuellen Standort des Benutzers mit SwiftUI und MapKit ab

So erhalten Sie den aktuellen Standort des Benutzers mit lat und long

Wenn Sie die Karte auf den Standort des Benutzers zentrieren, wird der blaue Punkt nicht angezeigt

Die Verknüpfung der Navigationsleiste mit der Karte, die den aktuellen Standort anzeigt, funktioniert nicht

So fügen Sie den aktuellen Standort des Benutzers in ng-autocomplete hinzu

Entfernung des Standortes des Benutzers von meinem aktuellen Standort

Python + Iterator, der sich aus der gemeinsamen Nutzung des aktuellen Status der Karte mit dem anfänglichen Iterator ergibt

SwiftUI: Wie erhalte ich den aktuellen Standort des Benutzers?

Fehler beim Versuch, den aktuellen Standort des Benutzers in Dialogflow abzurufen

MapKit-Zoom auf den aktuellen Standort des Benutzers

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv