私はこのユーティリティを作成しました、そしてそれは私のためにしばらくの間働いていました。もちろん、GoogleマップがAPIインターフェースを変更した場合は、それを変更する必要があります。
<?php
// Queries google maps for the address components
function utl_GetAddressComponents( $location )
{
$components = file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.urlencode($location).'&sensor=false');
$output = json_decode($components);
return $output->results[0];
}
?>
これは、コマンドラインから実行するために使用したテストファイルです。
tst_MatchingAddresses.php:
<?php
require_once( "utl_GetAddressComponents.php" );
$addr1 = $argv[1];
$addr2 = $argv[2];
$gmapsResult1 = utl_GetAddressComponents( $addr1 );
$gmapsResult2 = utl_GetAddressComponents( $addr2 );
$gmapsAddr1 = $gmapsResult1->formatted_address;
$gmapsAddr2 = $gmapsResult2->formatted_address;
print("Gmap1: ".$gmapsAddr1." ----- argv[1]: ".$argv[1]."\n");
print("Gmap2: ".$gmapsAddr2." ----- argv[2]: ".$argv[2]."\n");
if ( strcmp($gmapsAddr1,$gmapsAddr2) )
{
print("==> Addresses match!\n");
}
else
{
print("==> Addresses DO NOT MATCH!\n");
}
?>
コマンドラインの例を次に示します。
php tst_MatchingAddresses.php "1600 Pennsylvania Ave, Washington DC" "1600 Pennsylvania Avenue, 20500"
出力例:
Gmap1: 1600 Pennsylvania Avenue Northwest, President's Park, Washington, DC 20500, USA ----- argv[1]: 1600 Pennsylvania Ave, Washington DC
Gmap2: 1600 Pennsylvania Avenue Northwest, President's Park, Washington, DC 20500, USA ----- argv[2]: 1600 Pennsylvania Avenue, 20500
==> Addresses match!
注:file_get_contentsの引数を入力し、urlencodeなどをアドレスに置き換えると、ブラウザーに直接入力すると、jsonの結果が表示されます。