mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
use composite position
This commit is contained in:
@@ -81,6 +81,30 @@ class GpsPosition
|
|||||||
&& $this->latitude_ref !== null;
|
&& $this->latitude_ref !== null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isCompleteComposite()
|
||||||
|
{
|
||||||
|
return $this->longitude !== null
|
||||||
|
&& $this->latitude !== null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCompositeLongitude()
|
||||||
|
{
|
||||||
|
if ($this->longitude === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->longitude ;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCompositeLatitude()
|
||||||
|
{
|
||||||
|
if ($this->latitude === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->latitude;
|
||||||
|
}
|
||||||
|
|
||||||
public function getSignedLongitude()
|
public function getSignedLongitude()
|
||||||
{
|
{
|
||||||
if ($this->longitude === null) {
|
if ($this->longitude === null) {
|
||||||
|
@@ -155,9 +155,9 @@ SQL;
|
|||||||
// Push this tag into object
|
// Push this tag into object
|
||||||
$position->set($tag_name, $value);
|
$position->set($tag_name, $value);
|
||||||
// Try to output complete position
|
// Try to output complete position
|
||||||
if ($position->isComplete()) {
|
if ($position->isCompleteComposite()) {
|
||||||
$lon = $position->getSignedLongitude();
|
$lon = $position->getCompositeLongitude();
|
||||||
$lat = $position->getSignedLatitude();
|
$lat = $position->getCompositeLatitude();
|
||||||
|
|
||||||
$records[$id]['metadata_tags']['Longitude'] = $lon;
|
$records[$id]['metadata_tags']['Longitude'] = $lon;
|
||||||
$records[$id]['metadata_tags']['Latitude'] = $lat;
|
$records[$id]['metadata_tags']['Latitude'] = $lat;
|
||||||
|
@@ -758,26 +758,24 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
|||||||
public function getPositionFromTechnicalInfos()
|
public function getPositionFromTechnicalInfos()
|
||||||
{
|
{
|
||||||
$positionTechnicalField = [
|
$positionTechnicalField = [
|
||||||
media_subdef::TC_DATA_LATITUDE_REF,
|
|
||||||
media_subdef::TC_DATA_LATITUDE,
|
media_subdef::TC_DATA_LATITUDE,
|
||||||
media_subdef::TC_DATA_LONGITUDE_REF,
|
|
||||||
media_subdef::TC_DATA_LONGITUDE
|
media_subdef::TC_DATA_LONGITUDE
|
||||||
];
|
];
|
||||||
$position = new GpsPosition();
|
$position = [];
|
||||||
|
|
||||||
foreach($positionTechnicalField as $field){
|
foreach($positionTechnicalField as $field){
|
||||||
$fieldData = $this->get_technical_infos($field);
|
$fieldData = $this->get_technical_infos($field);
|
||||||
|
|
||||||
if($fieldData){
|
if($fieldData){
|
||||||
$position->set($field, $fieldData->getValue());
|
$position[$field] = $fieldData->getValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($position->isComplete()){
|
if(count($position) == 2){
|
||||||
return [
|
return [
|
||||||
'isCoordComplete' => 1,
|
'isCoordComplete' => 1,
|
||||||
'latitude' => $position->getSignedLatitude(),
|
'latitude' => $position[media_subdef::TC_DATA_LATITUDE],
|
||||||
'longitude' => $position->getSignedLongitude()
|
'longitude' => $position[media_subdef::TC_DATA_LONGITUDE]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -20,6 +20,13 @@ class GpsPositionTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertFalse($position->isComplete());
|
$this->assertFalse($position->isComplete());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testIsCompleteCompositeWithSingleSet()
|
||||||
|
{
|
||||||
|
$position = new GpsPosition();
|
||||||
|
$position->set('Latitude', 48.856578);
|
||||||
|
$this->assertFalse($position->isCompleteComposite());
|
||||||
|
}
|
||||||
|
|
||||||
public function testIsCompleteWithAllSet()
|
public function testIsCompleteWithAllSet()
|
||||||
{
|
{
|
||||||
$position = new GpsPosition();
|
$position = new GpsPosition();
|
||||||
@@ -30,6 +37,14 @@ class GpsPositionTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertTrue($position->isComplete());
|
$this->assertTrue($position->isComplete());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testIsCompleteCompositeWithAllSet()
|
||||||
|
{
|
||||||
|
$position = new GpsPosition();
|
||||||
|
$position->set('Latitude', 48.856578);
|
||||||
|
$position->set('Longitude', 2.351828);
|
||||||
|
$this->assertTrue($position->isCompleteComposite());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider getSupportedTagNames
|
* @dataProvider getSupportedTagNames
|
||||||
*/
|
*/
|
||||||
@@ -89,6 +104,13 @@ class GpsPositionTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals(-2.351828, $position->getSignedLongitude());
|
$this->assertEquals(-2.351828, $position->getSignedLongitude());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetCompositeLongitude()
|
||||||
|
{
|
||||||
|
$position = new GpsPosition();
|
||||||
|
$position->set('Longitude', -2.351828);
|
||||||
|
$this->assertEquals(-2.351828, $position->getCompositeLongitude());
|
||||||
|
}
|
||||||
|
|
||||||
public function testGetSignedLatitude()
|
public function testGetSignedLatitude()
|
||||||
{
|
{
|
||||||
$position = new GpsPosition();
|
$position = new GpsPosition();
|
||||||
@@ -109,4 +131,11 @@ class GpsPositionTest extends \PHPUnit_Framework_TestCase
|
|||||||
$position->set('LatitudeRef', 'S');
|
$position->set('LatitudeRef', 'S');
|
||||||
$this->assertEquals(-48.856578, $position->getSignedLatitude());
|
$this->assertEquals(-48.856578, $position->getSignedLatitude());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetCompositeLatitude()
|
||||||
|
{
|
||||||
|
$position = new GpsPosition();
|
||||||
|
$position->set('Latitude', -48.856578);
|
||||||
|
$this->assertEquals(-48.856578, $position->getCompositeLatitude());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user