0

多くのサポート フォーラムを検索しましたが、探している答えが見つかりません。基本的に、私のウェブサイトにはユーザー登録フォームがあります。ユーザーが「送信」をクリックすると、データが mySQL データベースに保存され、別のページにリダイレクトされます。十分に単純です。

しかし、登録された各ユーザーのおおよその位置 (都市、州、国) のマーカーを含む地図を含む別のページが必要です。

ユーザーが自分の緯度と経度を入力する必要がある場合、これを行うのはそれほど難しくありません。しかし、誰がその情報をすぐに入手できますか???

ユーザーが「送信」をクリックすると、3 つの入力フィールドが 1 つの変数 ($address) に結合されます。その変数 ($address) をジオコーディングして、他の 2 つの変数 ($lat と $lng) に出力するにはどうすればよいでしょうか? これを mysql_connect の前に実行しようとすると、すべてを mySQL データベース テーブルに挿入する準備が整います。


$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$status=$_POST['status'];
$service=$_POST['service'];
$rank=$_POST['rank'];
$specialty=$_POST['specialty'];
$address=$_POST['city'] . ',' . $_POST['state'] . ',' . $_POST['country'];
$city=$_POST['city'];
$state=$_POST['state'];
$country=$_POST['country'];
$email=$_POST['email'];

mysql_connect($host,$username,$password) or die("Unable to connect to database"); @mysql_select_db($database) or die("Unable to select database");

$query = "INSERT INTO $table VALUES ('','$first_name','$last_name','$status','$service','$rank','$speciality','$address','$city','$state','$country','','','$email')"; mysql_query($query);

どんな助けでも大歓迎です!!! PHP と MySQL で実行します。

4

2 に答える 2

7

GoogleのGeocodingAPIを使用できます。これはPHPではかなり簡単です。必要なパラメーターを使用してAPIURLで(doc)を実行し、次に結果file_get_contents()データjson_decode()で(doc)を実行します。

彼らのTOSは、このデータは最終的にGoogleマップに表示されなければならないと言っていることに注意してください。それ以外の場合は、別のジオコーディングサービスを使用する必要があります。

最後に、エラートラップ、タイムアウトの処理、およびその他の機能を忘れないでください。Googleがデータを返信するのを無期限に待つ必要はありません。彼らのサービスは非常に高速ですが、接続のトラブルやその他の問題が発生します。

編集:どうやら上記の私の説明を超えてより多くの助けが必要なので、ここにあなたを助けるためのいくつかの簡単なコードがあります。

<?php
$address="1600 Amphitheatre Pkwy, Mountain View, CA";
$result=file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=" . urlencode($address) );
$geocodedinfo=json_decode($result);

print_r($geocodedinfo);
?>

繰り返しますが、これはあなたが始めるためだけのものです。出力には、デコードされたすべてのものが表示されます。あなたが探しているものはこれらにあるべきです:

$geocodedinfo['results'][0]['geometry']['location']['lat']
$geocodedinfo['results'][0]['geometry']['location']['lng']
于 2010-11-15T16:38:58.643 に答える
2

Yahoo!を使用する プレースファインダーまたは他のジオコーディングAPIの1つ。

于 2010-11-15T16:38:32.160 に答える