Use direct call for geojson files
Deploy Spot / deploy (push) Successful in 16s

This commit is contained in:
2026-08-10 23:14:21 +02:00
parent dcd3e7339b
commit d6c897beeb
9 changed files with 62 additions and 30 deletions
+1 -4
View File
@@ -20,8 +20,7 @@ class Controller extends PhpObject
'add_position',
'admin_set',
'admin_create',
'admin_delete',
'build_geojson'
'admin_delete'
);
private Spot $oSpot;
@@ -130,7 +129,6 @@ class Controller extends PhpObject
return match($sAction) {
'markers' => $this->oSpot->getMarkers(),
'last_update' => $this->oSpot->getLastUpdate(),
'geojson' => $this->oSpot->getProjectGeoJson(),
'next_feed' => $this->oSpot->getNextFeed($this->asReq['id']),
'new_feed' => $this->oSpot->getNewFeed($this->asReq['id']),
'add_post' => $this->oSpot->addPost($this->asReq['name'], $this->asReq['content']),
@@ -158,7 +156,6 @@ class Controller extends PhpObject
'admin_create' => $this->oSpot->createAdminSettings($this->asReq['type']),
'admin_delete' => $this->oSpot->deleteAdminSettings($this->asReq['type'], $this->asReq['id_entity']),
'sql' => $this->oSpot->getDbBuildScript(),
'build_geojson' => $this->oSpot->buildGeoJSON($this->asReq['name']),
default => Spot::getJsonResult(false, Spot::NOT_FOUND)
};
}
-3
View File
@@ -10,9 +10,6 @@ use Franzz\Objects\PhpObject;
* 1. Add file <file_name>.gpx to geo/ folder
* 2. Assign file to project: UPDATE projects SET codename = '<file_name>' WHERE id_project = <id_project>;
* 3. Load any page
*
* To force gpx rebuild:
* ?a=build_geojson&name=<file_name>
*/
class Converter extends PhpObject {
+10 -10
View File
@@ -138,7 +138,15 @@ class Project extends PhpObject {
if($bSpecificProj) $asInfo['constraint'] = array(Db::getId(self::PROJ_TABLE)=>$iProjectId);
$asProjects = $this->oDb->selectRows($asInfo, 'codename');
foreach($asProjects as $sCodeName=>&$asProject) {
foreach($asProjects as $sCodeName => &$asProject) {
//Update Geo JSON
if($sCodeName != '' && (!Converter::isGeoJsonValid($sCodeName) || !$asProject['latitude'] && !$asProject['longitude'])) {
$aiCenter = Converter::convertToGeoJson($sCodeName)['center'];
$this->oDb->updateRow(self::PROJ_TABLE, $asProject['id'], ['latitude' => $aiCenter[1], 'longitude' => $aiCenter[0]]);
$asProject['latitude'] = $aiCenter[1];
$asProject['longitude'] = $aiCenter[0];
}
switch($asProject['mode']) {
case 0: $asProject['mode'] = self::MODE_PREVIZ; break;
case 1: $asProject['mode'] = self::MODE_BLOG; break;
@@ -146,21 +154,13 @@ class Project extends PhpObject {
}
$asProject['editable'] = $this->isModeEditable($asProject['mode']);
$asProject['gpxfilepath'] = Spot::addTimestampToFilePath(Gpx::getFrontendFilePath($sCodeName));
$asProject['geofilepath'] = Spot::addTimestampToFilePath(GeoJson::getFrontendFilePath($sCodeName));
$asProject['codename'] = $sCodeName;
$asProject['default'] = ($sCodeName == $sDefaultProjectCodeName);
}
return $bSpecificProj?$asProject:$asProjects;
}
public function getGeoJson() {
if($this->sCodeName != '' && !Converter::isGeoJsonValid($this->sCodeName)){
$aiCenter = Converter::convertToGeoJson($this->sCodeName)['center'];
$this->oDb->updateRow(self::PROJ_TABLE, $this->iProjectId, ['latitude' => $aiCenter[1], 'longitude' => $aiCenter[0]]);
}
return json_decode(file_get_contents(GeoJson::getBackendFilePath($this->sCodeName)), true);
}
public function getProject() {
return $this->getProjects($this->getProjectId());
}
-8
View File
@@ -256,10 +256,6 @@ class Spot extends Main
$this->oProject->setProjectId($iProjectId);
}
public function getProjectGeoJson() {
return self::getJsonResult(true, '', $this->oProject->getGeoJson());
}
public function updateProject() {
$bNewMsg = false;
$bSuccess = true;
@@ -859,10 +855,6 @@ class Spot extends Main
return self::getJsonResult($bSuccess, $sDesc, $asResult);
}
public function buildGeoJSON($sCodeName) {
return Converter::convertToGeoJson($sCodeName)['logs'];
}
public static function decToDms($dValue, $sType) {
if($sType=='lat') $sDirection = ($dValue >= 0)?'N':'S'; //Latitude
else $sDirection = ($dValue >= 0)?'E':'W'; //Longitude
-2
View File
@@ -179,8 +179,6 @@ class User extends PhpObject {
$sDesc = 'lang:account.logged_in';
}
else $sDesc = 'lang:account.invalid_credentials';
//die(print_r(['provided_pass'=>$sPassword, 'db_pass'=>$asDBUser['password']], true));
}
else {
$bSuccess = true;