2016-04-16 17 views
1

Ich mache eine App, die mit MapKit einen Punkt auf die Koordinaten einer Adresse setzt.Wie finde ich die Koordinaten einer Adresse?

Ich habe meine Klasse gemacht und alle meine Funktionen innerhalb der Klasse eingerichtet.

Ich muss in der Lage sein, "getLocation()" zurückzugeben, die die Zeichenfolge einer Adresse sein wird und diese Zeichenfolge mit dem CLGeoCoder(). GeocodeAdressString verwendet und die Koordinaten abruft.

Hier sind meine Klassen

import UIKit 

class Vendor { 

    private var name = String() 
    private var type = String() 
    private var location = String() 
    private var logo = UIImage() 

    required init(name: String, type: String) { 
     self.name = name 
     self.type = type 
     self.location = "" 
     self.logo = UIImage() 
    } 


    func getName() -> String { 
     return self.name 
    } 
    func setName(name: String) { 
     self.name = name 
    } 


    func getType() -> String { 
     return self.type 
    } 
    func setType(type: String) { 
     self.type = type 
    } 

    func getLocation() -> String { 
     return self.location 
    } 
    func setLocation(address: String) { 
     self.location = address 
    } 

    func getLogo() -> UIImage { 
     return self.logo 
    } 
    func setLogo(image: UIImage) { 
     self.logo = image 
    } 

} 
+0

Wo ist dein Geocoding-Code? – Wain

Antwort

0

Unter der Annahme, dass die Lage in der Herstellerklasse sind die Straße, Stadt und Land des Anbieters Ihr Code wie folgt aussehen könnte:

func geoCodeVendor() { 

    let vendorLocation = myVendor.getLocation 
    let geocoder = CLGeocoder() 
    geocoder.geocodeAddressString(vendorLocation) { (placemarks, error) in 

     self.centerCoordinate = (placemarks?.first?.location?.coordinate)! 
     //Whather more you want to do in this completion handler. 

    } 
} 

Sie hier habe eine Instanz von Vendor, myVendor in der Klasse erstellt, in der Sie Ihren Lieferanten geokodieren. In dieser Klasse haben Sie eine Eigenschaft centerCoordinate = CLLocationCoordinate2D() erstellt.

Normalerweise haben Sie eine Herstellerklasse mit dem Namen, der Adresse und der Stadt in separaten Eigenschaften. Zum Beispiel:

class Vendor { 

    private var name = String() 
    private var type = String() 
    private var address = String() 
    private var city = String() 
    private var logo = UIImage() 
} 

Dann fügen Sie die Adresse und Stadt in Ihre getLocation-Funktion. Bitte daran erinnern, dass die Geocodierung genauer arbeitet, wenn die Adresse so vollständig wie möglich ist, das heißt, die Adresse (mit Hausnummer, Stadt, Land.

hoffe, das hilft.

Verwandte Themen