function geoParseAdd($query) { //Virtual Earth Platform ID goes here. $vepUID = '138482'; //Virtual Earth Platform password goes here. $vepPWD = 'Teraaii0-maps'; $veToken = geoGetToken($vepUID, $vepPWD); //echo 'DEBUG: $veToken<br />'; //echo "<pre>"; //var_dump($veToken); //echo "</pre>"; //Get geocode //Create soap client $client = new SoapClient('ms-geocodeservice.wsdl'); //create credentials object and fill properties http://msdn.microsoft.com/en-us/library/cc966923.aspx $credentials = array('Token' => $veToken); //$query = '4252 rainey woods, memphis, tn'; //one geocoderesult, multiple geocodelocation //$query = 'springfield'; //multiple geocoderesult, single geocodelocation //echo 'DEBUG $query: ' . $query . '<br /><br />'; //create geocoderequest object and fill properties http://msdn.microsoft.com/en-us/library/cc980924.aspx $geocodeRequest = array('Credentials' => $credentials, 'Query' => $query, 'Options' => array('Count' => 5)); //build geocode methods 'request' parameter $geocode = array('request' => $geocodeRequest); //GeoCode method http://msdn.microsoft.com/en-us/library/cc966817.aspx $result = $client->Geocode($geocode); //echo 'DEBUG: $result<br />'; //echo "<pre>"; //var_dump($result); //echo "</pre>"; //Get GeocodeResponse object from $result http://msdn.microsoft.com/en-us/library/cc980928.aspx //get first GeocodeResult object ... the most relevant. http://msdn.microsoft.com/en-us/library/cc980950.aspx //get the GeocodeLocation object http://msdn.microsoft.com/en-us/library/cc966778.aspx //one geocoderesult (non-array) or more (array) if (is_array($result->GeocodeResult->Results->GeocodeResult)) { $a = $result->GeocodeResult->Results->GeocodeResult[0]; } else { $a = $result->GeocodeResult->Results->GeocodeResult; } //test if one geocodelocation (non-array) or more (array) if (is_array($a->Locations->GeocodeLocation)) { $b = $a->Locations->GeocodeLocation[0]; } else { $b = $a->Locations->GeocodeLocation; } // get ready for return of ret $ret = array("Displayname" => $a->DisplayName, "FormattedAddress" => $a->Address->FormattedAddress, "AddressLine" => $a->Address->AddressLine, "Locality" => $a->Address->Locality, "AdminDistrict" => $a->Address->AdminDistrict, "PostalCode" => $a->Address->PostalCode, "CountyRegion" => $a->Address->CountryRegion, "District" => $a->Address->District, "PostalTown" => $a->Address->PostalTown, "Latitude" => $b->Latitude, "Longitude" => $b->Longitude); return $ret; }
//Get geocode //Create soap client $client = new SoapClient('ms-geocodeservice.wsdl'); //create credentials object and fill properties http://msdn.microsoft.com/en-us/library/cc966923.aspx $credentials = array('Token' => $veToken); //set geocoding query $query = $address; //$query = '4252 rainey woods, memphis, tn'; //one geocoderesult, multiple geocodelocation //$query = 'springfield'; //multiple geocoderesult, single geocodelocation echo 'DEBUG $query: ' . $query . '<br /><br />'; //create geocoderequest object and fill properties http://msdn.microsoft.com/en-us/library/cc980924.aspx $geocodeRequest = array('Credentials' => $credentials, 'Query' => $query, 'Options' => array('Count' => 5)); //build geocode methods 'request' parameter $geocode = array('request' => $geocodeRequest); //GeoCode method http://msdn.microsoft.com/en-us/library/cc966817.aspx $result = $client->Geocode($geocode); echo 'DEBUG: $result<br />'; echo "<pre>"; var_dump($result); echo "</pre>"; //Get GeocodeResponse object from $result http://msdn.microsoft.com/en-us/library/cc980928.aspx //get first GeocodeResult object as there will be more than one, starting with the most relevant. http://msdn.microsoft.com/en-us/library/cc980950.aspx //get the GeocodeLocation object http://msdn.microsoft.com/en-us/library/cc966778.aspx //test if one geocoderesult (non-array) or more (array) if (is_array($result->GeocodeResult->Results->GeocodeResult)) { $a = $result->GeocodeResult->Results->GeocodeResult[0]; } else { $a = $result->GeocodeResult->Results->GeocodeResult; } //test if one geocodelocation (non-array) or more (array) if (is_array($a->Locations->GeocodeLocation)) {