here is an example i've beenplaying with, this is using codeigniter
$xml->open('http://nominatim.openstreetmap.org/search?q='.$searchstring.'&format=xml&polygon=0&addressdetails=1&countrycodes=gb');
$addrlist = $this->_xml2assoc($xml, "root");
$data['addressescount'] = count($addrlist[0]['childs']);
$addresses = $addrlist[0]['childs'];
if ($data['addressescount'] == 0)
{
$data['addrfrommsg'] = 'Sorry, we could not find any location for this address.';
}
elseif (($data['addressescount'] > 0) && ($data['addressescount'] < 20))
{
// put each address from nominatim into an array
foreach ($addresses as $k => $inside)
{
$addrlist[$k]['place_id']= $addrlist[0]['childs'] [$k]['attr']['place_id'];
$addrlist[$k]['lon']= $addrlist[0]['childs'] [$k]['attr']['lon'];
$addrlist[$k]['lat']= $addrlist[0]['childs'] [$k]['attr']['lat'];
$addrlist[$k]['road_x']= $addrlist[0]['childs'] [$k]['childs'][0]['childs'][0]['text'];
$addrlist[$k]['city_x']= $addrlist[0]['childs'] [$k]['childs'][2]['childs'][0]['text'];
$addrlist[$k]['display_name']= $addrlist[0]['childs'] [$k]['attr']['display_name'];
$data['addrfromlist'][]=$addrlist[$k];
// insert the location in database
$country = 'UK';
$direction = 'from';
$postcode = '';
if ($addrlist[$k]['place_id'] == 0 )
{
$addrlist[$k]['place_id'] = $k;
}
$this->locations_mdl->insert_location($data['session_id'], $addrlist[$k]['place_id'], $data['username'],
$addrlist[$k]['lon'], $addrlist[$k]['lat'], $addrlist[$k]['road_x'], $addrlist[$k]['city_x'],
$postcode, $country, $addrlist[$k]['display_name'], $direction);
}
}
elseif ($data['addressescount'] >= 20)
{
$data['addrfrommsg'] = 'Sorry, too many results please refine your search.';
}
$xml->close();
return $data;
}
answered 28 Aug '11, 09:00

jerry01
1
accept rate: 0%
ok, thanks.