mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
labourage avec davantage d'objets
This commit is contained in:
parent
2965841e81
commit
a412cb977a
11 changed files with 197 additions and 81 deletions
|
@ -24,8 +24,8 @@ class Motocultrice
|
|||
'opening_hours',
|
||||
'contact:email',
|
||||
'contact:phone',
|
||||
'addr:housenumber',
|
||||
'addr:street',
|
||||
'contact:housenumber',
|
||||
'contact:street',
|
||||
'contact:website',
|
||||
'contact:mastodon',
|
||||
'image',
|
||||
|
@ -122,10 +122,10 @@ class Motocultrice
|
|||
|
||||
// Nettoyer et échapper la zone pour la requête
|
||||
$zone = addslashes(trim($zone));
|
||||
|
||||
// //area["postal_code"="{$zone}"]->.searchArea;
|
||||
$query = <<<QUERY
|
||||
[out:json][timeout:25];
|
||||
area["postal_code"="{$zone}"]->.searchArea;
|
||||
{{geocodeArea:{$zone}}}->.searchArea;
|
||||
(
|
||||
// Recherche des commerces et services avec email
|
||||
nw["amenity"]["contact:email"][name](area.searchArea);
|
||||
|
@ -147,13 +147,13 @@ QUERY;
|
|||
|
||||
if($use_places_without_email_to_reference) {
|
||||
$query = <<<QUERY
|
||||
|
||||
[out:json][timeout:25];
|
||||
area["postal_code"="{$zone}"]->.searchArea;
|
||||
area(id:3610571698)->.searchArea;
|
||||
(
|
||||
nw["amenity"]["cafe|bar|restaurant|library|cinema|fast_food"](area.searchArea);
|
||||
nw["amenity"~"^(cafe|bar|restaurant|library|cinema|fast_food|post_office|marketplace|community_centre|theatre|bank|townhall)$"](area.searchArea);
|
||||
nw["healthcare"](area.searchArea);
|
||||
nw["shop"](area.searchArea);
|
||||
nw["tourism"="museum|hotel|chalet|apartment"](area.searchArea);
|
||||
nw["tourism"~"^(museum|hotel|chalet|apartment)$"](area.searchArea);
|
||||
nw["office"](area.searchArea);
|
||||
);
|
||||
out body;
|
||||
|
@ -162,6 +162,8 @@ out skel qt;
|
|||
QUERY;
|
||||
}
|
||||
|
||||
$essai_query = "%5Bout%3Ajson%5D%5Btimeout%3A25%5D%3B%0A%0A(%0Aarea(id%3A3610571698)-%3E.searchArea%3B%0A++++nw%5B%22amenity%22~%22%5E(cafe%7Cbar%7Crestaurant%7Clibrary%7Ccinema%7Cfast_food%7Cpost_office%7Cmarketplace%7Ccommunity_centre%7Ctheatre%7Cbank%7Ctownhall)%24%22%5D(area.searchArea)%3B%0A++++nw%5B%22healthcare%22%5D(area.searchArea)%3B%0A++++nw%5B%22shop%22%5D(area.searchArea)%3B%0A++++nw%5B%22tourism%22~%22%5E(museum%7Chotel%7Cchalet%7Capartment)%24%22%5D(area.searchArea)%3B%0A++++nw%5B%22office%22%5D(area.searchArea)%3B%0A)%3B%0Aout+body%3B%0A%3E%3B%0Aout+center%3B";
|
||||
|
||||
try {
|
||||
$response = $this->client->request('POST', $this->overpassApiUrl, [
|
||||
'body' => ['data' => $query]
|
||||
|
@ -177,12 +179,12 @@ QUERY;
|
|||
$email = "";
|
||||
if( ! $use_places_without_email_to_reference){
|
||||
|
||||
$email = $element['tags']['contact:email'] ?? $element['tags']['email'] ?? null;
|
||||
// On passe si pas d'email
|
||||
if (!$email) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$email = $element['tags']['contact:email'] ?? $element['tags']['email'] ?? null;
|
||||
// On passe si pas d'email
|
||||
if (!$email) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$places[] = [
|
||||
'id' => $element['id'],
|
||||
|
@ -199,7 +201,7 @@ QUERY;
|
|||
|
||||
return $places;
|
||||
} catch (\Exception $e) {
|
||||
var_dump($query);
|
||||
var_dump($essai_query);
|
||||
var_dump($e->getMessage());
|
||||
die();
|
||||
throw new \Exception("Erreur lors de la requête Overpass : " . $e->getMessage());
|
||||
|
@ -285,6 +287,16 @@ QUERY;
|
|||
$osm_object_data['contact:website'] = $osm_object_data['website'];
|
||||
unset($osm_object_data['website']);
|
||||
}
|
||||
// migrer addr:housenumber vers contact:housenumber
|
||||
if(isset($osm_object_data['addr:housenumber']) && !isset($osm_object_data['contact:housenumber'])){
|
||||
$osm_object_data['contact:housenumber'] = $osm_object_data['addr:housenumber'];
|
||||
unset($osm_object_data['addr:housenumber']);
|
||||
}
|
||||
// migrer addr:street vers contact:street
|
||||
if(isset($osm_object_data['addr:street']) && !isset($osm_object_data['contact:street'])){
|
||||
$osm_object_data['contact:street'] = $osm_object_data['addr:street'];
|
||||
unset($osm_object_data['addr:street']);
|
||||
}
|
||||
|
||||
return $osm_object_data;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue