web-dev-qa-db-ja.com

iPhone WebアプリはGPS位置を取得できますか?

iphoneユーザーがサイトにgps座標を提供するのを容易にするWebサイトを設計する簡単な方法はありますか?

たとえば、ユーザーが自動化された方法で入力できるようにするために、フォームフィールドに命名規則があるのではないかと思います。

ロケーションベースのWebサイトの構築を検討しており、iPhone(およびその他のモバイルユーザー)向けに調整したいと考えています。私はiphoneアプリがこれを行うことができることを理解していますが、私はそれを作成する準備ができていません。

17
HectorMac

これは、iPhoneから位置情報を読み取る方法の抜粋です。 3.0が必要なようです:

 navigator.geolocation.getCurrentPosition(foundLocation, noLocation);

 function foundLocation(position)
 {
   var lat = position.coords.latitude;
   var long = position.coords.longitude;
   alert('Found location: ' + lat + ', ' + long);
 }
 function noLocation()
 {
   alert('Could not find location');
 }

参照: http://mapscripting.com/how-to-use-geolocation-in-mobile-safari

ちなみに、iPhoneでWebコードを使用する場合は、ネイティブアプリを作成する必要はなく、サイトをアプリでラップしてアクセスできるようにする、いくつかの中間的なソリューションを試すことができます。 GPSやその他のネイティブ機能に。

16
Maciek

JouniErolaによるナビゲーションの下でアプリSendLocationをチェックしてください。

IPhoneの緯度と経度をサーバーに送信するシンプルなアプリです。サーバーのURLを入力するだけで、場所をHTTP-GETmethidとして受け取ることができます。

4
trapez

私はプログラミングなしでこれをしました。あなたはできる:

  1. IPhoneストアからiPhoneアプリ「BasicGPS」をダウンロードしてください。
  2. Twitter.comでアカウントを開始します(まだアカウントを取得していない場合)。
  3. Twittermail.comでEメールからTwitterへのアカウントを開始します。
  4. 基本的なGPS設定では、Twittermailの秘密の電子メールアドレスを使用します。
  5. Twitter.com/widgetsで[その他]をクリックして、ツイートを他の場所に公開するためのHTMLコードを取得します。
  6. このHTMLコードをホームページに配置します。
  7. 基本GPSでは、青い「I」(オン)ボタン、「Eメール」、「送信」をクリックするだけで、自分の位置をTwittermailに送信し、Twittermailで公開します。そしてTwitterはそれをあなたのホームページに自動的に公開します。

http://CharlieBloom.com で動作例を参照してください。最新の(カスタマイズ可能な)3つのツイートのみが表示されます。「Twitterでフォローしてください」をクリックして「私の位置.....」とGoogleマップリンクを選択してください。ポジションは、送信してから2〜3分後にウェブサイトで更新されます。

よろしく、チャーリーブルーム

1
Charlie Bloom

はい、しかし精度はかなり悪いです。 GPS設定をwatchPosition()関数からデータベースに投稿するWebフォームを作成し、結果をマッピングしました。地元の川を漕いでいる間、7つの投稿のうち2つだけが正しかった。残りは川の外にあり、そのうちの2つは約1マイル離れていました!私は今、より良い解決策を探しています。

フォームフィールドを更新するために使用するコードは次のとおりです。

<script type="text/javascript">
function getGPSLocation()
{
  if(navigator.geolocation)
  {
   navigator.geolocation.watchPosition(onGeoSuccess);
  } else {
   alert("Your browser or device doesn't support Geolocation");
  }
}

function onGeoSuccess(position) {
  document.getElementById("Latitude").value =  position.coords.latitude;
  document.getElementById("Longitude").value = position.coords.longitude;
}
</script>

そしてこれが形です。ニーズに合わせて更新します。

<form>
<img src="spacer.gif" OnLoad="getGPSLocation();">
<input type="Text" name="Latitude" id="Latitude" value="">
<input type="Text" name="Longitude" id="Longitude" value="">
</form>
1
Michael Muller