いくつかの住所
(123 Fake Street, Faketown, FA, 98765 など) を入力して、これらの住所の座標 (緯度と経度) を取得できるように、ある種の PHP が必要です。
これを完全に動的にする必要があります (これらのアドレスをデータベースから取得するため)。
これを行うことができるものはどこにありますか?
いくつかの住所
(123 Fake Street, Faketown, FA, 98765 など) を入力して、これらの住所の座標 (緯度と経度) を取得できるように、ある種の PHP が必要です。
これを完全に動的にする必要があります (これらのアドレスをデータベースから取得するため)。
これを行うことができるものはどこにありますか?
住所を取得して緯度/経度に変換するプロセスは、「ジオコーディング」と呼ばれます。Google Geocode API を見てみましょう。
私は、住所検証 API プロバイダーである SmartyStreets で働いています。当社のLiveAddress APIは、必要なことだけを行います。アカウントは無料で設定でき、1 か月あたり 250 回の検索が可能です。サンプルの PHP コードを次に示します。
<?php
// Customize this (get ID/token values in your SmartyStreets account)
$authId = urlencode("raw ID here");
$authToken = urlencode("raw token here");
// Address input
$input1 = urlencode("3785 s las vegs av.");
$input2 = urlencode("los vegas,");
$input3 = urlencode("nevada");
// Build the URL
$req = "https://api.smartystreets.com/street-address/?street={$input1}&city={$input2}&state={$input3}&auth-id={$authId}&auth-token={$authToken}";
// GET request and turn into associative array
$result = json_decode(file_get_contents($req),true);
echo "<pre>";
print_r($result);
echo "</pre>";
?>
出てくるものは次のようになります。
{
"input_index": 0,
"candidate_index": 0,
"delivery_line_1": "3785 Las Vegas Blvd S",
"last_line": "Las Vegas NV 89109-4333",
"delivery_point_barcode": "891094333992",
"components": {
"primary_number": "3785",
"street_name": "Las Vegas",
"street_postdirection": "S",
"street_suffix": "Blvd",
"city_name": "Las Vegas",
"state_abbreviation": "NV",
"zipcode": "89109",
"plus4_code": "4333",
"delivery_point": "99",
"delivery_point_check_digit": "2"
},
"metadata": {
"record_type": "H",
"zip_type": "Standard",
"county_fips": "32003",
"county_name": "Clark",
"carrier_route": "C024",
"congressional_district": "01",
"building_default_indicator": "Y",
"rdi": "Commercial",
"elot_sequence": "0119",
"elot_sort": "A",
"latitude": 36.10357,
"longitude": -115.17295,
"precision": "Zip9"
},
"analysis": {
"dpv_match_code": "D",
"dpv_footnotes": "AAN1",
"dpv_cmra": "N",
"dpv_vacant": "N",
"active": "Y",
"footnotes": "B#H#L#M#"
}
}