Mercurial > hg > batmud > gmap2
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 @@ "&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"> </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; + } + } + }); + } +}