2011-01-09 1 views
0

iPhoneのアプリケーションを構築したい場所に最も近いサーバーに連絡する必要があります。 アプリケーション自体は、サーバーの場所を把握しており、どのサーバーを選択するかを知る必要があります。GPSなしでiPhone/iPodでルーティングをリクエストする

私はiPod touchを使用するユーザーが多いと思うので、私はGPSを使ってこれを行うことはできません。

のStackOverflowとServerFaultの上

私はこの可能な解決策を見つけた:

    デバイス自体は、ルート要求とは、彼らが行っている場所を知っている必要がありますので、=>私はこの方法を使用することはできませんルートユーザーに
  1. 使用エニーキャスト技術。

  2. 国コードを取得し、Google Directions APIを使用して、最も近いサーバーを特定します。

  3. IP(GeoDNSなど)で場所を取得し、同じことを行います(上記参照)。

方法2は良いようだが、私はそれに3つの質問があります。

  1. APIをZを指すように私に点xから経路全体を送信します。私は距離を持っていたい。それを行う方法はありますか?

  2. Googleでは、1日あたり2,500リクエストの使用制限があると言います。彼らはそれをどのようにコントロールしていますか? IPで? APIキーを使用する必要がないと言っているので、私はこれを尋ねます。

  3. 後で問題なくGoogleを使用することをお勧めしますか?私のアプリ自体は無料ですが、アプリ内購入があります。それは重要ですか?

誰かがこれに慣れていることを願っています。前もって感謝します! GPSなしでデバイスに要求されたとき、多くの場合、ポール

答えて

0

、iOSのは、まだ場所を返します。覚えておいてください。第1世代のiPhoneにはGPSは搭載されていませんが、依然として位置情報サービスが可能です。 iOSは、GPSに加えて、ユーザーの場所を見つけるためにいくつかの技術(IPジオロケーション、スカイフックなど)を使用します。一日あたりの

2500回の要求である、または一般的にIPアドレスごとに、エンドユーザーあたり:

とにかく、あなたの質問のいくつかに答えます。だから、あなたは帽子をかぶることについて心配する必要はありません。ただし、APIを使用するにはGoogleマップを表示する必要があることに注意してください。そのため、APIを使用していてmapViewを使用していない場合、問題が発生する可能性があります。

Google Directions APIを最初に使用する必要がある理由が完全にわかりません。ユーザーの現在地とサーバーの両方の緯度/経度座標を取得できる場合は、iOSの組み込みCoreLocationメソッドを使用してそれらの距離を取得し、それに応じて決定することができます([CLLocation getDistanceFromLocation])。

+0

ありがとうございました!私はiPhoneがいつも「あなたのアプリケーションをXYZにあなたの現在の位置を使用させますか? Google APIを忘れる可能性があるので、私はそのメソッドを知らなかった。ありがとうございました。:) – Paul

+0

これは正しいことです.iOS 4からは、ステータスバーに小さなアイコンが表示され、ユーザーの現在地が使用されていることがわかります。 * initWithLatitude:longitude:*メソッドを使用すると、サーバーごとにCLLocationオブジェクトを簡単に作成できます。次に、* getDistanceFromLocation *メソッドを使用して、最も近いサーバーを特定するだけです。 – lxt

関連する問題