web-dev-qa-db-ja.com

Form APIを使用してユーザーから緯度と経度を取得する方法

Drupal 6を使用してデータベース駆動型のWebサイトを作成し、場所に関連するユーザーからいくつかの情報を収集したい;フォームを作成したい(そしてWebフォームを使用したくない) 、またはCCK)ユーザーからいくつかのデータを取得し、(OpenlayersまたはGmap APIによって)マップ上にポイントを作成して座標を取得し、それらのデータをデータベーステーブルに保存します。また、ビューモジュールと統合して、データからクエリを作成できます。

3
Raoof

フォーム部分を実行しているモジュールはすでに存在します。 HTML5ユーザーの地理位置情報 を参照してください。

これについての引用は次のとおりです(モジュールのプロジェクトページから):

...ユーザーが自分の場所をアカウント編集ページに保存できるようにする単純なモジュール。 HTML5の位置情報API を使用し、緯度と経度を保存します。そのデータの使い方は他のモジュール次第です。

Drupal.orgで使用されていた Drupal.orgが使用した場合Drupal 6。

ユーザー以上、またはDrupal 7バージョンの場合は、Geolocation HTML5ウィジェットで Geolocation Field を試してください。これでDrupal = 7、Drupal.orgはこの機能に位置情報フィールドを使用します。

1
Berdir
function geo_get_coords($address) {
  $map_key = "put your google map key";
  $url = sprintf('http://maps.google.com/maps/geo?&q=%s&output=csv&key=%s',rawurlencode($address),$map_key);

  if ($result = file_get_contents($url)) {
    $result_parts = explode(',',$result);

    if($result_parts[0] != 200) {
      return FALSE;
    }

    $coords['lat'] = $result_parts[2];
    $coords['lon'] = $result_parts[3];
  }

  return $coords;
}
0
user1021