1

我正在實施地理編碼和放置Google API。第一個從地址返回一些點(lat/long)。第二個從搜索條目返回一些興趣點。谷歌地圖API:如何選擇搜索和地址

我想,作爲iPhone的地圖本地應用程序,以確定用戶是否在搜索欄中鍵入地址,或只是一些關鍵字。

對於爲例,如果I型:

9 bicycle Street, New York => address, use Geocoding API 
9 bicycle Street => Geocoding API 
bicycle street => Geocoding API 
bicycle  => Place API 
bicycle shop => Place API 

我想始終調用地理編碼API,如果沒有結果,將API。但總是有結果。

我應該檢測一些關鍵字,如street,highway,...?

回答

0

我終於找到了答案。

iPhone地圖本地應用程序不會確定用戶是否鍵入了地址或只是一些關鍵字。它將Text Search Requests稱爲地方API的等價物。

文本搜索請求比地方搜索請求更靈活和強大,但消耗在名額有限的10度以上的要求:

無論是谷歌將搜索和谷歌地方文本搜索服務共享相同的使用限制;但是,文本搜索服務需要乘以10倍。也就是說,您製作的每個文本搜索請求將計爲針對您的配額的10個請求。

-1

你對我帖子最後一行的問題讓我感到畏縮,因爲不能保證用戶可以在地址中輸入這些後綴(它們完全是可選的,格式差別很大)。我以前看過很多,檢測關鍵字不是要走的路。 (此外,名爲「自行車街」的商店呢?)

我鼓勵你看看my answer over here,我在這裏討論識別或解析地址的難度。有一些例子顯示了一些瘋狂的地址仍然是有效的地址,而不是地名。

此外,here's a brief article描述了使用正則表達式(或常用模式)來識別和提取地址的難度 - 類似於您正在尋找的內容。

原因谷歌的地理編碼API總是給你一個結果,是因爲它確實解決逼近 - 如果地址不存在,谷歌做它最擅長的:它搜索東西給你反正顯示,東西你正在尋找。如果您輸入的地址不存在,它仍然會顯示結果,因爲它會插入並組成數據,因此您仍然可以繼續進行操作。有時這可能很有用,但在這裏可以咬你。

我建議尋找一個服務,只有有效地址,如果沒有結果,然後使用地方API。例如,LiveAddress API by SmartyStreets(我工作的地方)只會返回結果,如果地址可以被解析並且實際存在。看看一些demos看看我的意思。

這應該做你想要完成的。

+0

謝謝。我完全同意你的第一個§。現在你的答案聽起來非常重要。我更喜歡一些起點來自己開發一些東西。 – Martin 2012-07-31 13:12:29

+0

那麼,解釋它將如何 - 但它是一個有用的答案,旨在解決您的問題。我不是說你不應該調查。除了SmartyStreets以外,還有其他提供此類服務的提供商:Melissa Data,QAS,Cdyne等。查看哪一個最適合您的預算和工作流程。 – Matt 2012-07-31 14:03:40

+0

@Martin「開發自己的東西」,你的意思是寫你自己的地址地理編碼器,或一些示例代碼開始? – Matt 2012-07-31 15:25:14