1

ジオコーディングする必要があります。つまり、住所を緯度、経度に変換して、約 8,000 の住所を取得します。http://www.gpsvisualizer.com/geocoder/でYahoo と Google の両方のジオコーディング エンジンを使用していますが、多数の住所に対して、これらのエンジン (一方または両方) がジオコーディングを実行できないことがわかりました (iereturn latitude)。 =0,longitude=0)、または間違った座標を返す (Yahoo と Google が異なる結果を返す場合を含む)。

この問題を処理する最善の方法は何ですか? どのエンジンが (通常) より正確ですか? この種の作業の経験がある人からの考え、提案、アイデアをいただければ幸いです。

4

2 に答える 2

3

Google ジオコーディング サービスに対して多数のリクエストを行う場合、レスポンスが失敗し始めたときにリクエストを調整する必要があります。より良いアイデアを提供するために、私が作成した Drupal (PHP) モジュールのスニペットを示します。

function gmap_api_geocode($address) {

  $delay = 0;
  $api_key = keys_get_key('gmap_api');

  while( TRUE ) {

    $response = drupal_http_request('http://maps.google.com/maps/geo?q='. drupal_urlencode($address) .'&output=csv&sensor=false&oe=utf8&key='. $api_key);
    switch( $response->code ) {

      case 200: //OK
        $data = explode(',', $response->data);
        return array(
          'latitude' => $data[2],
          'longitude' => $data[3],
        );

      // Adopted from http://code.google.com/apis/maps/articles/phpsqlgeocode.html
      case 620: //Too many requests
        $delay += 100000;
        break;

      default:
        return FALSE;
    }

    usleep($delay);
  }
}
于 2010-04-04T05:05:37.000 に答える
0

あなたが使用することができます

https://github.com/darkphnx/fetegeo/

オフライン バッチ ジオコーディング用

于 2010-12-08T19:49:15.330 に答える