2011-09-07 16 views
0

私は住所のデータベースを持っており、ユーザーが地図上にピンポイントをドロップし、そのポイント周辺の走行距離に基づいて地域を定義できるようにしたいと考えています。そのユーザー定義の領域でデータベースを検索する方法があるのだろうかと思っていました。Googleマップカスタムアドレス別アドレス住所

答えて

0

あなたは、ピンドロップの経度と緯度の座標を取得し、あなたのサーバーにそのデータを送信し、このページに記載されているクエリを使用して結果を返すことができる必要があります:http://code.google.com/apis/maps/articles/phpsqlsearch.html

SELECT id, (3959 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat)))) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

あなたはあなたの住所を経度と緯度にもジオコーディングして、各住所に格納する必要があります。これは私が私のデータベース内のアドレスのための経度と緯度をこすりするために使用される正確なコードです:

/* Geocode Address 
    /***********************/ 
    $query = $db->query("SELECT * FROM wholesale_clients WHERE hq_id IN (SELECT owner_id FROM storelocator)"); 
    while($info = $query->fetch_array()) { 
    $address = str_replace(' ', '+', $info['address_1'] . ' ' . $info['address_2'] . ' ' . $info['suburb'] . ' ' . $info['state'] . ' ' . $info['zip'] . ' Australia'); 
    $file = file_get_contents('https://maps.googleapis.com/maps/api/geocode/xml?address='.$address.'&sensor=false'); 
    $file = xml2array($file); 
    $lat = $file['GeocodeResponse']['result']['geometry']['location']['lat']; 
    $lng = $file['GeocodeResponse']['result']['geometry']['location']['lng']; 
    //echo $info['hq_id'] . ' ' . $lat . ' ' . $lng . '<br />'; 
    if(!empty($lat) && !empty($lng)) { 
    $db->query("UPDATE `storelocator` SET `lat` = '" . $lat . "', `lng` = '" . $lng . "', `updated` = 1 WHERE `owner_id` = '" . $info['hq_id'] . "'"); 
    } 
    } 

    /***********************/ 

XML2array機能:キロを使用して、国際システム用http://www.bin-co.com/php/scripts/xml2array/

+0

だから私は必要なもの実際に距離を運転することによってカラスが飛んでくるのではありませんでした。しかし私ができることは、私がこのリストを手に入れた後で、私はここで見つけたgoogleの走行距離を使って再びフィルタリングできます:http://briancray.com/2009/06/23/calculate-driving-distance-google-maps-api/ – JAstanton

関連する問題