changeset 269:ce747cd9ec59 gmap2

Add error situation handling.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 13 Apr 2014 23:41:40 +0300
parents 98115d71bb64
children 561640ed2204
files map.js
diffstat 1 files changed, 18 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/map.js	Sun Apr 13 21:23:11 2014 +0300
+++ b/map.js	Sun Apr 13 23:41:40 2014 +0300
@@ -205,19 +205,28 @@
     XDownloadUrl("http://tnsp.org/gmapng/playerpos.php?token="+pmapToken,
     function(data, responseCode)
     {
-      if (data != "")
+      if (typeof(data) == "string")
       {
-        var pos = JSON.parse(data);
-        if (typeof(pos) == "object" && (pos.x != pmapPlrPrevPos.x || pos.y != pmapPlrPrevPos.y))
+        if (data.match(/error/i))
         {
-          pmapPlrMarker.setPosition(pmapMapCoordsToLatLng(new google.maps.Point(pos.x * 2 + 1, pos.y * 2 + 1), 7));
-          pmap.panTo(pmapMapCoordsToLatLng(new google.maps.Point(pos.x, pos.y), 6));
-          pmapPlrPrevPos = pos;
-          pmapUpdateDelay = 500;
+          // In case of an error, stop updating
+          clearInterval(pmapUpdatePID);
         }
         else
-        if (pmapUpdateDelay < 5000)
-          pmapUpdateDelay += 500;
+        if (data != "")
+        {
+          var pos = JSON.parse(data);
+          if (typeof(pos) == "object" && (pos.x != pmapPlrPrevPos.x || pos.y != pmapPlrPrevPos.y))
+          {
+            pmapPlrMarker.setPosition(pmapMapCoordsToLatLng(new google.maps.Point(pos.x * 2 + 1, pos.y * 2 + 1), 7));
+            pmap.panTo(pmapMapCoordsToLatLng(new google.maps.Point(pos.x, pos.y), 6));
+            pmapPlrPrevPos = pos;
+            pmapUpdateDelay = 500;
+          }
+          else
+          if (pmapUpdateDelay < 5000)
+            pmapUpdateDelay += 500;
+        }
       }
       else
         pmapUpdateDelay = 10000;