Using Php with ArcGIS Server 9.3 REST (v0.03)
So here's another sample. I have a pre-populated JSON file (addresses.txt) with a bunch of addresses to be geocoded.
This code shows how to load up the address list from the JSON file. I tried naming the file as .json, but am guessing since my json mime-type has not been set correctly, it wasn't loaded properly.
<?php
Next is the code to take the address, build the request and use the geocoding service on sample server to geocode the addresses.
<?php
Next filter the address candidates and display only those candidates who's score is 100. We simply print these.
<?php
{
"addresses": [
{ "name":"ESRI", "street":"380 New York St", "city":"Redlands", "state":"CA", "zip":92373 },
{ "name":"Google", "street":"1600 Amphitheatre Parkway", "city":"Mountain View", "state":"CA", "zip":94043 },
{ "name":"Yahoo", "street":"701 First Avenue", "city":"Sunnyvale", "state":"CA", "zip":94089 },
{ "name":"Microsoft", "street":"One Microsoft Way", "city":"Redmond", "state":"WA", "zip":98052 }
]
}
"addresses": [
{ "name":"ESRI", "street":"380 New York St", "city":"Redlands", "state":"CA", "zip":92373 },
{ "name":"Google", "street":"1600 Amphitheatre Parkway", "city":"Mountain View", "state":"CA", "zip":94043 },
{ "name":"Yahoo", "street":"701 First Avenue", "city":"Sunnyvale", "state":"CA", "zip":94089 },
{ "name":"Microsoft", "street":"One Microsoft Way", "city":"Redmond", "state":"WA", "zip":98052 }
]
}
This code shows how to load up the address list from the JSON file. I tried naming the file as .json, but am guessing since my json mime-type has not been set correctly, it wasn't loaded properly.
<?php
$url = "addresses.txt";
$response = file_get_contents($url);
$json = json_decode($response);
?>$response = file_get_contents($url);
$json = json_decode($response);
Next is the code to take the address, build the request and use the geocoding service on sample server to geocode the addresses.
<?php
$geocodeUrl = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/" . "Locators/ESRI_Geocode_USA/GeocodeServer/" . "findAddressCandidates?f=json";
foreach($json->addresses as $address) {
$url = str_replace(" ", "+", $geocodeUrl . "&Address=" . $address->street . "&City=" . $address->city . "&State=" . $address->state . "&Zip=" . $address->zip);
$response = file_get_contents($url);
$candidates = json_decode($response);
?>foreach($json->addresses as $address) {
$url = str_replace(" ", "+", $geocodeUrl . "&Address=" . $address->street . "&City=" . $address->city . "&State=" . $address->state . "&Zip=" . $address->zip);
$response = file_get_contents($url);
$candidates = json_decode($response);
Next filter the address candidates and display only those candidates who's score is 100. We simply print these.
<?php
$html = "Address candidate(s) for (" . $address->name . "\n<ul>\n";
foreach($candidates->candidates as $candidate) {
if ($candidate->score == 100) {
$html .= "<li>" . $candidate->address . " (" . $candidate->location->x . ", " . $candidate->location->y . ")</li>";
}
}
$html .= "</ul>\n";
echo $html;
}
?>
foreach($candidates->candidates as $candidate) {
if ($candidate->score == 100) {
$html .= "<li>" . $candidate->address . " (" . $candidate->location->x . ", " . $candidate->location->y . ")</li>";
}
}
$html .= "</ul>\n";
echo $html;
}