Pick project from globe
This commit is contained in:
@@ -29,7 +29,10 @@ class Converter extends PhpObject {
|
||||
$oGeoJson->sortOffTracks();
|
||||
$oGeoJson->saveFile();
|
||||
|
||||
return $oGpx->getLog().'<br />'.$oGeoJson->getLog();
|
||||
return [
|
||||
'logs' => $oGpx->getLog().'<br />'.$oGeoJson->getLog(),
|
||||
'center' => $oGeoJson->getCenter()
|
||||
];
|
||||
}
|
||||
|
||||
public static function isGeoJsonValid($sCodeName) {
|
||||
|
||||
@@ -103,7 +103,6 @@ class GeoJson extends Geo {
|
||||
if($bSimplify) $this->addNotice('Total: '.$iGlobalInvalidPointCount.'/'.$iGlobalPointCount.' points removed ('.round($iGlobalInvalidPointCount / $iGlobalPointCount * 100, 1).'%)');
|
||||
}
|
||||
|
||||
|
||||
public function sortOffTracks() {
|
||||
$this->addNotice('Sorting off-tracks');
|
||||
|
||||
@@ -155,7 +154,19 @@ class GeoJson extends Geo {
|
||||
$this->asTracks = array_values($asTracks);
|
||||
}
|
||||
|
||||
private function parseOptions($sComment){
|
||||
public function getCenter() {
|
||||
$asCoords = array();
|
||||
$asMainTracks = array_filter($this->asTracks, function ($astrack) {return $astrack['properties']['type'] == 'main';});
|
||||
foreach($asMainTracks as $asMainTrack) {
|
||||
foreach($asMainTrack['geometry']['coordinates'] as $aiCoords) {
|
||||
$asCoords[] = $aiCoords;
|
||||
}
|
||||
}
|
||||
|
||||
return $asCoords[(int) floor(count($asCoords) / 2)];
|
||||
}
|
||||
|
||||
private function parseOptions($sComment) {
|
||||
$sComment = strip_tags(html_entity_decode($sComment));
|
||||
$asOptions = array(self::OPT_SIMPLE=>'');
|
||||
foreach(explode("\n", $sComment) as $sLine) {
|
||||
|
||||
@@ -126,6 +126,8 @@ class Project extends PhpObject {
|
||||
Db::getId(self::PROJ_TABLE)." AS id",
|
||||
'codename',
|
||||
'name',
|
||||
'latitude',
|
||||
'longitude',
|
||||
'active_from',
|
||||
'active_to',
|
||||
"IF(NOW() BETWEEN active_from AND active_to, 1, IF(NOW() < active_from, 0, 2)) AS mode"
|
||||
@@ -147,12 +149,16 @@ class Project extends PhpObject {
|
||||
$asProject['gpxfilepath'] = Spot::addTimestampToFilePath(Gpx::getDistFilePath($sCodeName));
|
||||
$asProject['codename'] = $sCodeName;
|
||||
$asProject['default'] = ($sCodeName == $sDefaultProjectCodeName);
|
||||
//$asProject['center'] = [$asProject['latitude'], $asProject['longitude']];
|
||||
}
|
||||
return $bSpecificProj?$asProject:$asProjects;
|
||||
}
|
||||
|
||||
public function getGeoJson() {
|
||||
if($this->sCodeName != '' && !Converter::isGeoJsonValid($this->sCodeName)) Converter::convertToGeoJson($this->sCodeName);
|
||||
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::getDistFilePath($this->sCodeName)), true);
|
||||
}
|
||||
|
||||
@@ -173,12 +173,13 @@ class Spot extends Main
|
||||
|
||||
return parent::getMainPage(
|
||||
array(
|
||||
'projects' => $this->oProject->getProjects(),
|
||||
'user' => $this->oUser->getUserInfo(),
|
||||
'consts' => array(
|
||||
'projects' => $this->oProject->getProjects(),
|
||||
'user' => $this->oUser->getUserInfo(),
|
||||
'consts' => array(
|
||||
'modes' => Project::MODES,
|
||||
'clearances' => User::CLEARANCES,
|
||||
'default_timezone' => Settings::TIMEZONE,
|
||||
'default_maps' => $this->oMap->getProjectMaps(-1),
|
||||
'chunk_size' => self::FEED_CHUNK_SIZE,
|
||||
'hash_sep' => '-',
|
||||
'title' => 'Spotty',
|
||||
@@ -823,7 +824,7 @@ class Spot extends Main
|
||||
}
|
||||
|
||||
public function buildGeoJSON($sCodeName) {
|
||||
return Converter::convertToGeoJson($sCodeName);
|
||||
return Converter::convertToGeoJson($sCodeName)['logs'];
|
||||
}
|
||||
|
||||
public static function decToDms($dValue, $sType) {
|
||||
|
||||
Reference in New Issue
Block a user