<?php
$sTitle = "Tester for map position helper (Php class)";
$aUrls = array(
"http://www.openstreetmap.org/#map=13/46.9384/7.4585",
"https://www.yandex.ru/maps/99/munich/?ll=11.555422%2C48.085201&z=10",
"https://www.google.ch/maps/@46.9457237,7.4302919,14z",
"https://www.google.com.br/maps/@-22.7405789,-47.3313609,20.25z",
);
require_once 'ahmaphelper.class.php';
// ------------------------------------------------------------------
// FUNCTIONS
// ------------------------------------------------------------------
function getOutput($sUrl = false) {
if (!$sUrl) {
return '';
}
$oMaphelper = new ahmaphelper();
$aPos = $oMaphelper->getPos($sUrl);
$sUrlList = '';
if ($aPos) {
$sUrlList.='
<pre>$oMaphelper-><strong>getUrls</strong>();<br>'
. print_r($oMaphelper->getUrls(), 1)
. '</pre>';
$aFixed = $oMaphelper->fixPosition();
if (array_key_exists('_orig', $aFixed)) {
$sUrlList.='<h3>Fix position values</h3>'
. 'What you see in the resultset above is: we did not get links to all providers.<br><br>'
. 'BUT: There is a '
. 'healing function that creates compatible values. '
. 'The key _warnings contains info messages, '
. 'what was fixed.<br>'
. '<pre>$oMaphelper-><strong>fixPosition</strong>();<br>'
. print_r($aFixed, 1)
. '</pre>'
;
$sUrlList.='<br>'
. 'The values were fixed. Let\'s re-run the method getUrls:'
. '<pre>$oMaphelper-><strong>getUrls</strong>();<br>'
. print_r($oMaphelper->getUrls(), 1)
. '</pre>';
} else {
$sUrlList.=''
. 'OK, we got links of all providers. If not: you should know that there is a '
. 'healing function that creates compatible values. '
. '<pre>$oMaphelper-><strong>fixPosition</strong>();</pre>'
;
}
$sUrlList.='<h3>link generation with position data</h3>'
. '<p>'
. 'With latitude, longitude and zoom you can generate links too.<br>'
. 'To get links to all providers:'
. '</p>'
. '<pre>$oMaphelper-><strong>generateUrls</strong>(' . $aPos['lat'] . ', ' . $aPos['lon'] . ', ' . $aPos['zoom'] . ')<br>'
. print_r($oMaphelper->generateUrls($aPos['lat'], $aPos['lon'], $aPos['zoom']), 1)
. '</pre>'
. '<p>'
. '... or just one provider<br>'
. '</p>'
. '<pre>$oMaphelper-><strong>generateUrl</strong>("google", ' . $aPos['lat'] . ', ' . $aPos['lon'] . ', ' . $aPos['zoom'] . ')<br>'
. print_r($oMaphelper->generateUrl("google", $aPos['lat'], $aPos['lon'], $aPos['zoom']), 1)
. '</pre>'
. ''
;
}
return '<h2>Output</h2><div class="output">'
. '<strong>URL:</strong> <a href="' . $sUrl . '" target="_blank">' . $sUrl . '</a>'
. '<div style="margin-left: 2em;">'
. '<br><h3>Get the position</h3>'
. '<pre>$oMaphelper-><strong>getPos</strong>("' . $sUrl . '")<br>' . print_r($aPos, 1) . '</pre><br>'
. ($aPos ? '<h3>Urls that point to the same position</h3>' . $sUrlList . '<br>' : 'ERROR: No position was detected. The url cannot be parsed.' )
. '</div>'
. '</div>'
;
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title><?php echo $sTitle; ?></title>
<style>
a{color: #33f;}
body{background: #f8f8f8; color:#334; font-family: verdana, arial; font-size: 1em;}
h1{color:#889; font-size: 200%;}
h2{color:#99a; margin: 1em 0 0;font-size: 300%;}
h3{color:#aab; margin: 0;font-size: 200%;}
pre{background: #fff; border: 1px solid #ddd; padding: 0.5em;}
pre strong{color:#222; background: #def;}
input{border: 0px solid #ccc; }
ol>li{
list-style: none;
counter-increment: item;
margin-bottom: 1em;
}
ol>li::before{
content: counter(item);
font-size: 200%;
border: 0px solid #555; border-radius: 50%;
background: #99a;
color:#dde;
margin: 0 0.5em 0.5em 0em;
padding: 0 0.3em;
}
#eUrl{border: 1px solid #ccc; color:#567; padding: 0.5em; font-size: 110%; box-shadow: 0 0 1em #ccc inset ;}
.content{width: 1000px; margin: 1em auto 3em; padding: 1em; box-shadow: 0 0 4em #ccc; border: 1px solid #fff;}
.infobox{border: 2px dotted #ccd; padding: 1em; background: #f0f4f8; color:#889;}
.output{background: #f0f0f0; border: 1px solid #ccc; padding: 1em; margin-bottom: 1em;}
.footer{background: #f0f0f0; margin-top: 2em; padding: 0.5em; color:#aab;}
.submit, .reset{
font-size: 130%;padding: 0.4em;border: 1px solid rgba(0,0,0,0.3); border-radius: 0.3em;
color: rgba(0,0,0,0.5);
}
.submit{background: #8c8; }
.reset{background: #f88; padding-left: 0.6em; padding-right: 0.6em;}
</style>
</head>
<body>
<div class="content">
<div class="infobox">
<h1>Tester for map position helper (Php class)</h1>
<p>
This helper class can parse urls of a map services
Google maps, Openstreetmap and Yandex. It fetches
the position longitude and latitude from an url.<br>
<br>
It generates urls with the same position with other
map services.
</p>
</div>
<h2>Try it yourself!</h2>
<ol>
<li>Open
<a href="http://maps.google.com/" target="_blank">Google maps</a> or
<a href="http://www.openstreetmap.org" target="_blank">Open street map</a> or
<a href="https://yandex.ru/maps/" target="_blank">Yandex map</a>,</li>
<li>Zoom in, go to any position and then</li>
<li>Copy the url and paste it below.</li>
</ol>
<?php
// ------------------------------------------------------------------
// OUTPUT
// ------------------------------------------------------------------
$sUrl = array_key_exists('url', $_GET) && $_GET['url'] ? strip_tags($_GET['url']) : '';
echo ''
. '<form method="GET" action="?" style="margin-left: 6em;">
<!--<label for="eUrl">Paste your url here:</label><br>-->
<input type="text" id="eUrl" name="url" size="90" value="' . $sUrl . '" />
<input class="submit" type="submit" value="Go">'
. ($sUrl ? ' <input type="button" class="reset" onclick="location.href=\'?\';" value=" x "/>' : '')
. '
</form>
' . getOutput($sUrl) . '
<h2>Examples</h2>
<p>Click one :-)<br>
';
foreach ($aUrls as $sUrl2) {
echo '<a href="?url=' . urlencode($sUrl2) . '">' . $sUrl2 . '</a><br>';
// echo getOutput($sUrl);
}
?>
<br>
<strong>Ressources</strong><br>
Source: <a href="https://github.com/axelhahn/ahmaphelper">Github</a>
/
Author: Axel Hahn (<a href="http://www.axel-hahn.de/">www.axel-hahn.de</a>)
</p>
<div class="footer">
www.axel-hahn.de
</div>
</div>
</body></html>
|