2016-04-16 4 views
1

MapKitを使用して住所の座標にポイントを配置するアプリを作っています。住所の座標はどのようにして見つけられますか?

私は自分のクラスを作成し、クラス内にすべての関数を設定しました。

アドレスの文字列になるgetLocation()を返すことができ、その文字列をCLGeoCoder()。geocodeAdressStringで使用して座標を取得する必要があります。あなたがここに

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. 

    } 
} 

:ここ

は、ベンダーのクラスの場所はあなたのコードは次のようになりますベンダーの通り、都市や国であることを仮定すると、私のクラス

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

はどこジオコーディングコードですか? – Wain

答えて

0

ですベンダをジオコーディングしているクラスのベンダmyVendorのインスタンスを作成しました。そのクラスでは、プロパティcenterCoordinate = CLLocationCoordinate2D()を作成しています。

通常、別々のプロパティで名前、住所、都市のベンダクラスがあります。たとえば:

class Vendor { 

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

次に、getLocation関数でアドレスと都市を追加します。 、アドレス(番号、市、国で、つまり、そのジオコーディングは、アドレスができるだけ完了したときに、より正確に動作思い出してください。

希望を、このことができます。

関連する問題