Domanda

I need some type of PHP thingie so that I can input a few street-addresses
(such as: 123 Fake Street, Faketown, FA, 98765) and then it will give me the coordinates (latitude and longitude) of these addresses.
I need this to be completely dynamic (as I will be fetching these addresses from a DataBase).

Where can I find something that can do this?

È stato utile?

Soluzione

The process of taking an address and turning it into lat/lng is called "Geocoding". I would look at the Google Geocode API.

https://developers.google.com/maps/documentation/geocoding/

Altri suggerimenti

I work for SmartyStreets, an address verification API provider. Our LiveAddress API does just what you need. An account is free to setup and it comes with 250 lookups per month. Here's some sample PHP code:

<?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>";

?>

What comes out looks like this:

{
    "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#"
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top