2

ジオコーディングと場所の両方の Google API を実装しています。1 つ目は、住所からいくつかのポイント (緯度/経度) を返します。2 つ目は、検索エントリからいくつかの関心のあるポイントを返します。

iPhone マップ ネイティブ アプリケーションとして、ユーザーが検索バーに住所を入力したのか、それともキーワードだけを入力したのかを判断したいと思います。

たとえば、次のように入力すると:

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 を呼び出そうとしましたが、結果がなければ Place API を呼び出しました。しかし、必ず結果があります。

street、、 ...などのキーワードを検出する必要がhighwayありますか?

4

2 に答える 2

0

私はついに答えを見つけました。

iPhone マップ ネイティブ アプリケーションは、ユーザーが住所を入力したのか、キーワードだけを入力したのかを判断しません。Text Search Requestsを使用して place API に相当するものを呼び出します。

テキスト検索リクエストはプレイス検索リクエストよりも柔軟で強力ですが、制限されたクォータで 10 倍のリクエストを消費します。

Google プレイス検索サービスと Google プレイス テキスト検索サービスの使用制限は同じです。ただし、テキスト検索サービスは 10 倍の乗数の対象となります。つまり、作成した各テキスト検索リクエストは、クォータに対して 10 リクエストとしてカウントされます。

于 2012-09-18T09:01:25.923 に答える
-1

あなたの投稿の最後の行でのあなたの質問は、ユーザーがアドレスにそれらのサフィックスを入力するという保証がないので、私をうんざりさせました(それらは完全にオプションであり、フォーマットは大きく異なります)。私はこれを以前によく見ましたが、キーワードを検出するのは道のりではありません。(その上、「自転車通り」という名前のお店はどうですか?)

ここで、アドレスの識別ま​​たは解析の難しさについて説明している私の答えを確認することをお勧めします。いくつかの見栄えの悪いアドレスがまだ有効なアドレスであり、地名ではないことを示すいくつかの例があります。

さらに、これは、正規表現(または一般的なパターン)を使用してアドレスを識別および抽出することの難しさを説明する簡単な記事です-あなたがやろうとしていることと似ています。

GoogleのジオコーディングAPIが常に結果を提供する理由は、住所の概算を行うためです。住所が存在しない場合、Googleは最善を尽くします。とにかく表示するもの、探しているものを検索します。 。存在しないアドレスを入力した場合でも、データを補間して構成するため、結果が表示されます。これにより、引き続き何かを行うことができます。これは時々役に立ちますが、ここではあなたを噛む可能性があります。

有効な住所のみを地理コード化するサービスを探すことをお勧めします。結果が得られない場合は、placesAPIを使用してください。たとえば、SmartyStreets(私が働いている場所)によるLiveAddress APIは、アドレスが解析可能で実際に存在する場合にのみ結果を返します。いくつかのデモを見て、私が何を意味するかを確認してください。

これはあなたが達成しようとしていることをするはずです。

于 2012-07-31T12:48:57.380 に答える