function updateOverpass($limit = false) { $start = microtime(); //updateOSM(); $files = scandir('fajlok/tmp'); /* * / foreach($files as $file) if(preg_match('/^osm_/i',$file)) unlink('fajlok/tmp/'.$file); /* */ $query = "SELECT t.id, g.* FROM templomok t \n LEFT JOIN osm ON osm.tid = t.id \n LEFT JOIN terkep_geocode as g ON g.tid = t.id \n WHERE osm.type IS NULL and ok = 'i' \n ORDER BY t.id"; $result = mysql_query($query); $c = 0; while ($row = mysql_fetch_assoc($result)) { set_time_limit(600); $around = 60; $around2 = 3000; $lon = $row['lng']; $lat = $row['lat']; $query = '[out:json][timeout:6]; ( node["amenity"="place_of_worship"](around:' . $around2 . ',' . $lat . ',' . $lon . '); way["amenity"="place_of_worship"](around:' . $around2 . ',' . $lat . ',' . $lon . '); rel["amenity"="place_of_worship"](around:' . $around2 . ',' . $lat . ',' . $lon . '); ); out body center qt 6;'; $obj = getOverpass($query); if (count((array) $obj->elements) > 5) { $query = '[out:json][timeout:6]; ( node["amenity"="place_of_worship"](around:' . $around . ',' . $lat . ',' . $lon . '); way["amenity"="place_of_worship"](around:' . $around . ',' . $lat . ',' . $lon . '); rel["amenity"="place_of_worship"](around:' . $around . ',' . $lat . ',' . $lon . '); ); out body center qt;'; getOverpass($query); } $c++; if (is_numeric($limit) and $limit > 0 and $limit >= $c) { break; } } /* */ echo $start - microtime() . "s "; return true; }
$church = getChurch($t); //To use uptodate OSM //$church['osm'] = getOSMelement($church['osm']['type'],$church['osm']['id']); $osm = $church['osm']; if ($osm == '') { $around = 60; $around2 = 3000; $lon = $church['lng']; $lat = $church['lat']; if ($lat == '' or $lon == '') { } else { $query = '[out:json][timeout:6]; ( node["amenity"="place_of_worship"](around:' . $around2 . ',' . $lat . ',' . $lon . '); way["amenity"="place_of_worship"](around:' . $around2 . ',' . $lat . ',' . $lon . '); rel["amenity"="place_of_worship"](around:' . $around2 . ',' . $lat . ',' . $lon . '); ); out body center qt 6;'; $obj = getOverpass($query); if (count((array) $obj->elements) > 5) { $query = '[out:json][timeout:6]; ( node["amenity"="place_of_worship"](around:' . $around . ',' . $lat . ',' . $lon . '); way["amenity"="place_of_worship"](around:' . $around . ',' . $lat . ',' . $lon . '); rel["amenity"="place_of_worship"](around:' . $around . ',' . $lat . ',' . $lon . '); ); out body center qt;'; $obj = getOverpass($query); } $k = false; $dmisn = $around2 + 1; foreach ($obj->elements as $key => $element) { if (isset($element->center->lat)) { $element->lat = $element->center->lat; } if (isset($element->center->lon)) { $element->lon = $element->center->lon; } $d = Distance($church, (array) $element); if ((int) $d < (int) $dmisn) { $k = $key; $dmisn = $d; }