New plugin GoogleMaps, changed map format for OSM
authorMichael Vogel <icarus@dabo.de>
Tue, 30 Jun 2015 05:31:27 +0000 (07:31 +0200)
committerMichael Vogel <icarus@dabo.de>
Tue, 30 Jun 2015 05:31:27 +0000 (07:31 +0200)
googlemaps/googlemaps.php [new file with mode: 0644]
openstreetmap/openstreetmap.php

diff --git a/googlemaps/googlemaps.php b/googlemaps/googlemaps.php
new file mode 100644 (file)
index 0000000..0b031f4
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Name: Google Maps
+ * Description: Use Google Maps for displaying locations. After activation the post location just beneath your avatar in your posts will link to Google Maps.
+ * Version: 0.1
+ * Author: Michael Vogel <https://pirati.ca/profile/heluecht>
+ *
+ */
+
+require_once('include/cache.php');
+
+
+function googlemaps_install() {
+       register_hook('render_location', 'addon/googlemaps/googlemaps.php', 'googlemaps_location');
+
+       logger("installed googlemaps");
+}
+
+function googlemaps_uninstall() {
+       unregister_hook('render_location', 'addon/googlemaps/googlemaps.php', 'googlemaps_location');
+
+       logger("removed googlemaps");
+}
+
+function googlemaps_location($a, &$item) {
+
+       if(! (strlen($item['location']) || strlen($item['coord'])))
+               return;
+
+       if ($item['coord'] != "")
+               $target = "http://maps.google.com/?q=".urlencode($item['coord']);
+       else
+               $target = "http://maps.google.com/?q=".urlencode($item['location']);
+
+       if ($item['location'] != "")
+               $title = $item['location'];
+       else
+               $title = $item['coord'];
+
+       $item['html'] = '<a target="map" title="'.$title.'" href= "'.$target.'">'.$title.'</a>';
+}
index e805632..1354516 100644 (file)
@@ -51,7 +51,7 @@ function openstreetmap_location($a, &$item) {
 
        /*
         * Get the configuration variables from the config.
-        * @todo Separate the tile map server from the text-string to map tile server 
+        * @todo Separate the tile map server from the text-string to map tile server
         * since they apparently use different URL conventions.
         * We use OSM's current convention of "#map=zoom/lat/lon" and optional
         * ?mlat=lat&mlon=lon for markers.
@@ -73,31 +73,27 @@ function openstreetmap_location($a, &$item) {
        if(! $marker)
                $marker = 0;
 
-       $location = '';
-       $coord = '';
-
-       $location = $item['location'];
-
-       $location = (($location && (! $item['coord'])) ? '<a target="map" title="' . $item['location'] . '" href="'.$nomserver . '?q=' . urlencode($item['location']) . '">' . $item['location'] . '</a>' : $location);
-
-       if($item['coord']) {
+       if ($item['coord'] != "") {
                $coords = explode(' ', $item['coord']);
                if(count($coords) > 1) {
                        $lat = urlencode(round($coords[0], 5));
                        $lon = urlencode(round($coords[1], 5));
-                       $coord = '<a target="map" class="OSMMapLink" title="' . $item['coord'] . '" href="'. $tmsserver;
+                       $target = $tmsserver;
                        if($marker > 0)
-                               $coord .= '?mlat=' . $lat . '&mlon=' . $lon;
-                       $coord .= '#map=' . intval($zoom) . '/' . $lat . '/' . $lon .'">Map</a>';
+                               $target .= '?mlat='.$lat.'&mlon='.$lon;
+                       $target .= '#map='.intval($zoom).'/'.$lat.'/'.$lon;
                }
        }
-       if(strlen($coord)) {
-               if($location)
-                       $location .= '&nbsp;<span class="smalltext">(' . $coord . ')</span>';
-               else
-                       $location = '<span class="smalltext">' . $coord . '</span>';
-       }
-       $item['html'] = $location;
+
+       if ($target == "")
+               $target = $nomserver.'?q='.urlencode($item['location']);
+
+       if ($item['location'] != "")
+               $title = $item['location'];
+       else
+               $title = $item['coord'];
+
+       $item['html'] = '<a target="map" title="'.$title.'" href= "'.$target.'">'.$title.'</a>';
 }
 
 
@@ -112,15 +108,13 @@ function openstreetmap_generate_named_map(&$a,&$b) {
        $x = z_fetch_url($nomserver . $args);
        if($x['success']) {
                $j = json_decode($x['body'],true);
-               
+
                if($j && is_array($j) && $j[0]['lat'] && $j[0]['lon']) {
                        $arr = array('lat' => $j[0]['lat'],'lon' => $j[0]['lon'],'location' => $b['location'], 'html' => '');
                        openstreetmap_generate_map($a,$arr);
                        $b['html'] = $arr['html'];
                }
        }
-       
-       
 }
 
 function openstreetmap_generate_map(&$a,&$b) {