-1

ユーザーが入力した都市名から位置座標を見つける方法を見つけようとしています。GoogleがAPIでこれを可能にしていることは知っていますが、実際にそれらの結果を取得してphp変数に割り当てて、データベースに保存するか、検索機能に使用する方法を理解できませんでした。

基本的に、私がやろうとしているのは、ユーザーが都市から一定の距離内にいる他のユーザーを検索できるようにする検索システムを Web サイトに実装することです。

誰かが素晴らしいプログラマーを助けることができれば:)

ありがとう!

4

1 に答える 1

1

ここにあなたが始めるためのいくつかのコードがあります

緯度/経度を見つけるためのPHP

    function buildGeocode($address_1, $address_2, $city, $state, $zip_code, $country){

        $base_url = "http://maps.googleapis.com/maps/api/geocode/json";

        $address = $address_1 . ' ' . $address_2 . ', ' . $city . ' ' . $state . ' ' . $zip_code . ' ' . $country;

        $request_url = $base_url . "?address=" . urlencode($address) . "&sensor=false";

        $data = json_decode(file_get_contents($request_url), true);

        return array('lat' => $data['results'][0]['geometry']['location']['lat'], 'lng' => $data['results'][0]['geometry']['location']['lng']);

    }

鳥が何マイルも飛んでいるときに、指定された距離でアイテムを見つけるための MYSQL を次に示します。これは、PDO に変換するか、適切にエスケープする必要があります。

SELECT SQL_CALC_FOUND_ROWS
            *
            FROM (SELECT location_tbl.*, ( 3959*(2*ASIN(SQRT(POW(SIN(((location_tbl.lat-" . $lat . ")*(PI()/180))/2),2)+COS(location_tbl.lat*0.017453293)*COS(" . $lat . "*0.017453293)*POW(SIN(((location_tbl.lng-" . $lng . ")*(PI()/180))/2),2)))) ) AS distance
                FROM location_tbl
            WHERE location_tbl.active = 1 AND location_tbl.deleted = 0) AS tmp_tbl
        WHERE distance <= '" . $dis . "'
        ORDER BY distance ASC
于 2013-07-29T20:52:19.410 に答える