5

私はphpプロジェクトに取り組んでおり、指定された場所からデータベースに100KMの範囲で3つの都市を見つけて保存したいと考えています。このためにGoogleAPIジオコーディングを考えていました。使えるかどうかはわかりません。しかし、GeocodingAPIの利用規約ページに次の行が見つかりました

Geocoding APIは、Googleマップと組み合わせてのみ使用できます。地図に表示せずに結果をジオコーディングすることは禁止されています。

どういう意味ですか?都市を取得するためにAPIを使用できますか?誰か考えがありますか?

4

3 に答える 3

6

これは非常に明確であるように私には思えます。

はい、Googleマップに最寄りの都市を表示する場合は、ジオコーディングAPIを使用できます。

いいえ、Googleマップに最寄りの都市を表示しない場合は、ジオコーディングAPIを使用できません。

結果を保存して後で使用する場合でも違いはありません。

ところで。Yahooにも同じ使用ポリシーがあることに注意してください。

更新:GeoNamesを使用できます。こちらをご覧ください

于 2012-04-16T13:22:45.577 に答える
3

Google Maps GeocodingAPIGeoNames.orgAPIを組み合わせて近くのすべての都市を取得できるコードスニペットを作成しました(file_get_contentsの他にcURLリクエストも実行できます)。

/*
 * Get cities based on city name and radius in KM
 */

// get geocode object as array from The Google Maps Geocoding API
$geocodeObject = json_decode(file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address={CITY NAME},{COUNTRY CODE}'), true);

// get latitude and longitude from geocode object
$latitude = $geocodeObject['results'][0]['geometry']['location']['lat'];
$longitude = $geocodeObject['results'][0]['geometry']['location']['lng'];

// set request options
$responseStyle = 'short'; // the length of the response
$citySize = 'cities15000'; // the minimal number of citizens a city must have
$radius = 30; // the radius in KM
$maxRows = 30; // the maximum number of rows to retrieve
$username = '{YOUR USERNAME}'; // the username of your GeoNames account

// get nearby cities based on range as array from The GeoNames API
$nearbyCities = json_decode(file_get_contents('http://api.geonames.org/findNearbyPlaceNameJSON?lat='.$latitude.'&lng='.$longitude.'&style='.$responseStyle.'&cities='.$citySize.'&radius='.$radius.'&maxRows='.$maxRows.'&username='.$username, true));

// foreach nearby city get city details
foreach($nearbyCities->geonames as $cityDetails)
{
    // do something per nearby city
}

APIは限られているため、リクエストの量に注意してください

APIの詳細については、次のURLにアクセスしてください。

于 2015-12-03T13:18:48.873 に答える
0

それはすべて、あなたが達成したいことに要約されます。この場所を保存するにはデータベースを使用する必要があるため、アプリケーションがデータベースでカバーしようとしている領域のデータ(緯度と経度)を取得して保存することをお勧めします。

于 2012-04-16T13:14:42.647 に答える