mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
courbes d'historique
This commit is contained in:
parent
06ced163e6
commit
d9219db84f
4 changed files with 233 additions and 30 deletions
|
@ -106,6 +106,17 @@ class Place
|
|||
#[ORM\Column(nullable: true)]
|
||||
private ?\DateTime $osm_data_date = null;
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
private ?int $osm_version = null;
|
||||
|
||||
#[ORM\Column(length: 255, nullable: true)]
|
||||
private ?string $osm_user = null;
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
private ?int $osm_uid = null;
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
private ?int $osm_changeset = null;
|
||||
|
||||
public function getPlaceTypeName(): ?string
|
||||
{
|
||||
|
@ -198,7 +209,7 @@ class Place
|
|||
/**
|
||||
* mettre à jour le lieu selon les tags osm
|
||||
*/
|
||||
public function update_place_from_overpass_data(array $overpass_data) {
|
||||
public function update_place_from_overpass_data(array $overpass_data) {
|
||||
|
||||
if ( ! isset($overpass_data['tags']) || $overpass_data['tags'] == null) {
|
||||
return;
|
||||
|
@ -216,7 +227,8 @@ class Place
|
|||
'addr:street' => '',
|
||||
'website' => '',
|
||||
'wheelchair' => '',
|
||||
'note' => ''
|
||||
'note' => '',
|
||||
'fixme' => '',
|
||||
], $overpass_data['tags'] );
|
||||
|
||||
|
||||
|
@ -231,15 +243,37 @@ class Place
|
|||
->setLon($orignal_overpass_data['lon'])
|
||||
->setName(isset($overpass_data['name']) && $overpass_data['name'] != '' ? $overpass_data['name'] : null);
|
||||
|
||||
// Traiter le timestamp OSM si disponible
|
||||
if (isset($orignal_overpass_data['timestamp']) && $orignal_overpass_data['timestamp']) {
|
||||
try {
|
||||
$osmDate = new \DateTime($orignal_overpass_data['timestamp']);
|
||||
$this->setOsmDataDate($osmDate);
|
||||
} catch (\Exception $e) {
|
||||
// En cas d'erreur de parsing de la date, on ignore
|
||||
}
|
||||
}
|
||||
|
||||
// Traiter les autres métadonnées OSM
|
||||
if (isset($orignal_overpass_data['version'])) {
|
||||
$this->setOsmVersion($orignal_overpass_data['version']);
|
||||
}
|
||||
if (isset($orignal_overpass_data['user'])) {
|
||||
$this->setOsmUser($orignal_overpass_data['user']);
|
||||
}
|
||||
if (isset($orignal_overpass_data['uid'])) {
|
||||
$this->setOsmUid($orignal_overpass_data['uid']);
|
||||
}
|
||||
if (isset($orignal_overpass_data['changeset'])) {
|
||||
$this->setOsmChangeset($orignal_overpass_data['changeset']);
|
||||
}
|
||||
|
||||
$mapping = [
|
||||
['key' => 'postcode', 'setter' => 'setZipCode', 'source' => $overpass_data],
|
||||
['key' => 'email', 'setter' => 'setEmail', 'source' => $overpass_data],
|
||||
['key' => 'opening_hours', 'setter' => 'setHasOpeningHours', 'source' => $overpass_data['tags'] ?? []],
|
||||
['key' => 'note', 'setter' => 'setNote', 'source' => $overpass_data['tags'] ?? []],
|
||||
['key' => 'addr:housenumber', 'setter' => 'setHasAddress', 'source' => $overpass_data['tags'] ?? []],
|
||||
['key' => 'website', 'setter' => 'setHasWebsite', 'source' => $overpass_data['tags'] ?? []],
|
||||
['key' => 'wheelchair', 'setter' => 'setHasWheelchair', 'source' => $overpass_data['tags'] ?? []],
|
||||
['key' => 'note', 'setter' => 'setHasNote', 'source' => $overpass_data['tags'] ?? []],
|
||||
['key' => 'siret', 'setter' => 'setSiret', 'source' => $overpass_data['tags'] ?? []],
|
||||
['key' => 'addr:street', 'setter' => 'setStreet', 'source' => $overpass_data['tags'] ?? []],
|
||||
['key' => 'addr:housenumber', 'setter' => 'setHousenumber', 'source' => $overpass_data['tags'] ?? []],
|
||||
|
@ -251,6 +285,26 @@ class Place
|
|||
}
|
||||
}
|
||||
|
||||
// Traiter les notes et fixme
|
||||
$noteContent = '';
|
||||
$hasNote = false;
|
||||
|
||||
if (isset($orignal_overpass_data['tags']['note']) && $orignal_overpass_data['tags']['note'] !== '') {
|
||||
$noteContent .= $orignal_overpass_data['tags']['note'];
|
||||
$hasNote = true;
|
||||
}
|
||||
|
||||
if (isset($orignal_overpass_data['tags']['fixme']) && $orignal_overpass_data['tags']['fixme'] !== '') {
|
||||
if ($noteContent !== '') {
|
||||
$noteContent .= "\n\n";
|
||||
}
|
||||
$noteContent .= "FIXME: " . $orignal_overpass_data['tags']['fixme'];
|
||||
$hasNote = true;
|
||||
}
|
||||
|
||||
$this->setNoteContent($noteContent);
|
||||
$this->setHasNote($hasNote);
|
||||
|
||||
$this
|
||||
// ->setOsmId($overpass_data['id'])
|
||||
// ->setOsmKind($overpass_data['type'])
|
||||
|
@ -263,8 +317,7 @@ class Place
|
|||
->setHasOpeningHours($overpass_data['opening_hours'] ? true : false)
|
||||
->setHasAddress($overpass_data['addr:housenumber'] && $overpass_data['addr:street'] ? true : false)
|
||||
->setHasWebsite($overpass_data['website'] ? true : false)
|
||||
->setHasWheelchair($overpass_data['wheelchair'] and $overpass_data['wheelchair'] != '' ? true : false)
|
||||
->setHasNote($overpass_data['note'] and $overpass_data['note'] != '' ? true : false);
|
||||
->setHasWheelchair($overpass_data['wheelchair'] and $overpass_data['wheelchair'] != '' ? true : false);
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
|
@ -643,4 +696,52 @@ class Place
|
|||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getOsmVersion(): ?int
|
||||
{
|
||||
return $this->osm_version;
|
||||
}
|
||||
|
||||
public function setOsmVersion(?int $osm_version): static
|
||||
{
|
||||
$this->osm_version = $osm_version;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getOsmUser(): ?string
|
||||
{
|
||||
return $this->osm_user;
|
||||
}
|
||||
|
||||
public function setOsmUser(?string $osm_user): static
|
||||
{
|
||||
$this->osm_user = $osm_user;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getOsmUid(): ?int
|
||||
{
|
||||
return $this->osm_uid;
|
||||
}
|
||||
|
||||
public function setOsmUid(?int $osm_uid): static
|
||||
{
|
||||
$this->osm_uid = $osm_uid;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getOsmChangeset(): ?int
|
||||
{
|
||||
return $this->osm_changeset;
|
||||
}
|
||||
|
||||
public function setOsmChangeset(?int $osm_changeset): static
|
||||
{
|
||||
$this->osm_changeset = $osm_changeset;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue