| 
<?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>
 
 |