2010-01-23 57 views
1

我知道核心位置不總是在iPhone上準確。有沒有辦法使用位置(緯度/經度)以及準確性來抓取該地區所有可能的郊區/街道?iPhone反向地理編碼:給所有可能的街道/郊區?

因此,不是使用反向地理編碼,而是猜測「最佳郊區/街道」,是否有辦法使它能夠給出所有可能的郊區/街道陣列(或其他格式)考慮?

謝謝!

+0

嘿扎克,看看吃了,我已經在你的貼在我的答案的評論。 – vfn 2010-01-23 13:40:15

回答

1

因此,最好的方法是使用Google地圖API。例如,看看下面的網址:http://maps.google.com/maps/geo?q=38.4417077,-90.7122047&output=xml

正如你所看到的,對於這個對(經度,緯度),你有10個可能的座標位置。

這種情況的文檔,你可以找到:http://code.google.com/apis/maps/documentation/geocoding/index.html

你可以看到你在XML,JSON,CSV的信息。

查看狀態碼,驗證請求是否成功(通常是200或200以及某些內容)很重要。

那麼,如何使用它VFN?

很簡單。



double latitude = coordinate.latitude; 
    double longitude = coordinate.longitude; 

    NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%f,%f&output=xml", latitude, longitude]; 
    NSURL *url = [NSURL URLWithString:urlString]; 


    NSString *locationString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; 

on locationString是來自Google Geocoder的響應,現在您可以根據需要使用該信息。請記住先檢查狀態碼,然後解析信息。如果您只需要Google Geocoder選擇的第一個地標,我建議您使用CSV格式的輸出,這很容易處理。

如果您有任何疑問,請告訴我!

乾杯,
VFN

+0

我不難得到街道/郊區/城市/郵政編碼。我想要做的事情是使用Core Location給出的座標和半徑,然後從座標中獲得半徑範圍內的所有街道/郊區。所以,讓我說我有座標(-33.888068,151.205521)和3公里的準確性。我想找到所有坐落在3公里內的郊區。 Chippendale,Surry Hills,Redfern,Alexandria,Eveleigh等。 感謝您的幫助,但它給了我已經擁有的相同信息。 – 2010-01-23 12:02:52

+0

Hey Zac, 因此,我把文檔的鏈接放在我的答案上。 看一看:http://code.google.com/apis/maps/documentation/geocoding/#Viewports 您可以定義區域的中心和邊界框的範圍。上面發佈的代碼僅用於說明您不知道如何使用API​​。讓我知道是否足夠。歡呼 – vfn 2010-01-23 13:42:28

+0

那麼,如何使用這些信息來獲得郊區?最好在一個陣列中。對不起,我以前沒用過XML。我使用這個:[NSString stringWithFormat:@「http://maps.google.com/maps/geo?q=%f,%f&output=xml&ll=%f,%f&spn=%f,%f」,緯度,經度,緯度,經度,[位置horizo​​ntalAccuracy],[位置horizo​​ntalAccuracy]]; – 2010-01-24 06:23:29