<?php
class BingMaps {
// get an application key from https://www.bingmapsportal.com/application/
private $key = 'YOUR-APPLICATION-KEY';
private $server = 'http://dev.virtualearth.net/webservices/v1';
function geocode($query, $n = 1){
$client = new SoapClient($this->server . '/geocodeservice/geocodeservice.svc?wsdl');
$request = $this->request($query, $n);
$result = $client->Geocode($request);
return $result->GeocodeResult->Results->GeocodeResult;
}
function search($query, $n = 10){
$client = new SoapClient($this->server . '/searchservice/searchservice.svc?wsdl');
$request = $this->request($query, $n);
$result = $client->Search($request);
return $result->SearchResult->ResultSets->SearchResultSet->Results->SearchResultBase;
}
private function request($query, $n){
return array('request' => array(
'Credentials' => array('ApplicationId' => $this->key),
'Query' => $query,
'Options' => array('Count' => $n),
));
}
}
/* example usage */
$api = new BingMaps();
$result = $api->geocode('1 Microsoft Way, Redmond, WA, United States');
print_r($result);
$api = new BingMaps();
$result = $api->search('Microsoft in Redmond');
print_r($result);
Microsoft's "documentation".