Forward geocoding from the iPhone

前端 未结 7 1050
耶瑟儿~
耶瑟儿~ 2020-11-28 05:20

Given that the mapkit doesn\'t provide forward geocoding functionality today, can anyone provide help on how I can i use a search bar to return a latitude and longitude coor

相关标签:
7条回答
  • 2020-11-28 06:01

    There is also a framework here: https://github.com/tylerhall/CoreGeoLocation

    Comment from docs: An Objective GeoCoder and Reverse Geocoder wrapping around Yahoo's Geocoding services or Google's Geo APIs primarily.

    0 讨论(0)
  • 2020-11-28 06:08

    It's a known issue with the current version of MapKit. File a bugreport and dupe #6628720 so they make fixing it a priority.

    In the meantime, there are forward Geocoding APIs from Google Maps, via Yahoo Placemaker, or Cloudmade.

    0 讨论(0)
  • 2020-11-28 06:13

    iOS 5 now allows for forward Geocoding:

    http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/UsingGeocoders/UsingGeocoders.html#//apple_ref/doc/uid/TP40009497-CH4-SW5

    I hope this helps!

    0 讨论(0)
  • 2020-11-28 06:16

    I have done some small work on forward and reverse geocoding using CLGeocoder in iOS5 CoreLocation framework on github hope it help you. https://github.com/Mangesh20/geocoding

    0 讨论(0)
  • 2020-11-28 06:24

    I've created a forward geocoding API for Google's geocoding server. Check out my blogpost: http://blog.sallarp.com/ipad-iphone-forward-geocoding-api-google/

    0 讨论(0)
  • 2020-11-28 06:25

    I have created SVGeocoder, a simple forward and reverse geocoder class for iOS. It uses the Google Geocoding API as well and returns an MKPlacemark.

    This is how you geocode an address string:

    NSString *addressString = @"3245 St-Denis, Montreal"
    SVGeocoder *geocodeRequest = [[SVGeocoder alloc] initWithAddress:addressString];
    [geocodeRequest setDelegate:self];
    [geocodeRequest startAsynchronous];
    

    And you reverse geocode an CLLocationCoordinate2D object like this:

    CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(45.54181, -73.62928);
    SVGeocoder *rGeocoderRequest = [[SVGeocoder alloc] initWithCoordinate:coordinate];
    [rGeocoderRequest setDelegate:self];
    [rGeocoderRequest startAsynchronous];
    

    The SVGeocoderDelegate offers these 2 methods:

    - (void)geocoder:(SVGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark;
    - (void)geocoder:(SVGeocoder *)geocoder didFailWithError:(NSError *)error;
    
    0 讨论(0)
提交回复
热议问题