changeset 262:254343316a90 gmap2

Cleanups.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 13 Apr 2014 16:27:43 +0300
parents 68eb8c001a8a
children 7e57e5577425
files index.php map.js
diffstat 2 files changed, 70 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/index.php	Sat Apr 12 23:38:12 2014 +0300
+++ b/index.php	Sun Apr 13 16:27:43 2014 +0300
@@ -21,6 +21,20 @@
 $dataCopyrights = "Map data by BAT ry, Ggr, Slobber and Jeskko";
 
 
+$jsLibs = array(
+  "map.js",
+  "lib/util.js",
+  "lib/markerwithlabel_packed.js",
+  "lib/markermanager_packed.js",
+  "world.js",
+  "icons.js",
+  "markers.js",
+  "nav.js",
+);
+
+$jsTokens = array("x", "y", "zoom", "token");
+
+
 //
 // Handle CSS stuff
 //
@@ -50,10 +64,9 @@
   "&amp;sensor=false\" type=\"text/javascript\"></script>\n".
   "    <link rel=\"stylesheet\" href=\"".$pageCSS."\" type=\"text/css\" />\n".
   "    <link rel=\"stylesheet\" href=\"css/colors.css\" type=\"text/css\" />\n".
-  "  </head>\n";
-?>
-  <body>
-<?php
+  "  </head>\n".
+  "  <body>\n";
+
 @include "urchin.inc.php";
 ?>
     <div id="header">
@@ -89,26 +102,26 @@
     <div id="footer">
       <div id="footercontent">&nbsp;</div>
     </div>
-    <script type="text/javascript" src="map.js"></script>
-    <script type="text/javascript" src="lib/util.js"></script>
-    <script type="text/javascript" src="lib/markerwithlabel_packed.js"></script>
-    <script type="text/javascript" src="lib/markermanager_packed.js"></script>
-    <script type="text/javascript" src="world.js"></script>
-    <script type="text/javascript" src="icons.js"></script>
-    <script type="text/javascript" src="markers.js"></script>
-    <script type="text/javascript" src="nav.js"></script>
 <?php
-  echo
-    "    <script type=\"text/javascript\">\n".
-    "      pmapBaseURL = \"".$pageBaseURL."\";\n".
-    "      pmapInitializeMap(";
+
+foreach ($jsLibs as $libName)
+  echo "    <script type=\"text/javascript\" src=\"".$libName."\"></script>\n";
 
-  if (isset($_GET["x"]) && isset($_GET["y"]) && isset($_GET["zoom"]))
-    echo intval($_GET["x"]).",".intval($_GET["y"]).",".intval($_GET["zoom"]);
+$jsData = array();
+foreach ($jsTokens as $key)
+{
+  if (isset($_GET[$key]) && strlen($_GET[$key]) > 0)
+  {
+    $sval = $_GET[$key];
+    $jsData[] = "\"".$key."\":".(is_numeric($sval) ? $sval : "\"".$sval."\"");
+  }
+}
 
-  echo
-    ");\n".
-    "    </script>\n";
+echo
+  "    <script type=\"text/javascript\">\n".
+  "      pmapBaseURL = \"".$pageBaseURL."\";\n".
+  "      pmapInitializeMap({".implode($jsData, ",")."});\n".
+  "    </script>\n".
+  "  </body>\n".
+  "</html>\n";
 ?>
-  </body>
-</html>
--- a/map.js	Sat Apr 12 23:38:12 2014 +0300
+++ b/map.js	Sun Apr 13 16:27:43 2014 +0300
@@ -54,7 +54,7 @@
 CanvasProjectionOverlay.prototype.onRemove = function(){};
 
 
-function pmapInitializeMap(sx, sy, szoom)
+function pmapInitializeMap(args)
 {
   // Initialize custom imagemap with our tiles
   var pmapBatMap = new google.maps.ImageMapType(
@@ -93,18 +93,24 @@
   pmapCanvas.setMap(pmap);
 
   google.maps.event.addListener(pmap, "mousemove", pmapCoordinateListener);
-  if (szoom && sx && sy)
+  if (args && args.zoom && args.x && args.y)
   {
     google.maps.event.addDomListener(pmap, "foobar", function()
     {
-      pmap.setZoom(szoom);
-      pmap.panTo(pmapMapCoordsToLatLng(new google.maps.Point(sx, sy), 6));
-      var mk = pmapGetMarkerIndexByCoords(sx, sy);
-      if (mk)
-        pmapMyClick(mk);
+      pmap.setZoom(args.zoom);
+      pmap.panTo(pmapMapCoordsToLatLng(new google.maps.Point(args.x, args.y), 6));
+      var tgtMarker = pmapGetMarkerIndexByCoords(args.x, args.y);
+      if (tgtMarker)
+        pmapMyClick(tgtMarker);
     });
   }
 
+  if (args && args.token)
+  {
+    pmapToken = args.token;
+    pmapUpdatePID = setInterval("pmapUpdatePlayerPosition", 1500);
+  }
+
   pmapInitializeNav();
   pmapInitializeIcons();
   pmapInitializeMarkers();
@@ -163,3 +169,24 @@
     window.prompt("Copy to clipboard: Ctrl+C, Enter", str);
   }
 }
+
+function pmapUpdatePlayerPosition()
+{
+  if (pmapToken)
+  {
+//    XDownloadUrl("http://www.bat.org/playerpos?token="+pmapToken,
+    XDownloadUrl("http://tnsp.org/gmapng/playerpos?token="+pmapToken,
+    function(data, responseCode)
+    {
+      if (data != "")
+      {
+        var pos = JSON.parse(data);
+        if (pos.x != pmapPrevPos.x || pos.y != pmapPrevPos.y)
+        {
+          pmap.panTo(pmapMapCoordsToLatLng(new google.maps.Point(args.x, args.y), 6));
+          pmapPrevPos = pos;
+        }
+      }
+    });
+  }
+}