Template:Fragoria Map
From FragoriaWiki
(Difference between revisions)
												
			
		| Line 17: | Line 17: | ||
                 normalizedCoord.x + '.jpg';  |                  normalizedCoord.x + '.jpg';  | ||
         },  |          },  | ||
| - |          tileSize: new google.maps.Size(  | + |          tileSize: new google.maps.Size(256, 256),  | 
         maxZoom: 4,  |          maxZoom: 4,  | ||
         minZoom: 1,  |          minZoom: 1,  | ||
| Line 51: | Line 51: | ||
         // tile range in one direction range is dependent on zoom level  |          // tile range in one direction range is dependent on zoom level  | ||
         // 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc  |          // 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc  | ||
| - |          var tileRange =   | + |          var tileRange = 2<< zoom;  | 
         // repeat across y-axis (vertically)  |          // repeat across y-axis (vertically)  | ||
| Line 70: | Line 70: | ||
       }  |        }  | ||
| + |       // Add a move listener to restrict the bounds range  | ||
| + |       GEvent.addListener(map, "move", function() {  | ||
| + |         checkBounds();  | ||
| + |       });  | ||
| + | |||
| + |       // The allowed region which the whole map must be within  | ||
| + |       var allowedBounds = new GLatLngBounds(new GLatLng(49.5,-10), new GLatLng(59,2.6));  | ||
| + | |||
| + |       // If the map position is out of range, move it back  | ||
| + |       function checkBounds() {  | ||
| + |         // Perform the check and return if OK  | ||
| + |         if (allowedBounds.contains(map.getCenter())) {  | ||
| + |           return;  | ||
| + |         }  | ||
| + |         // It`s not OK, so find the nearest allowed point and move there  | ||
| + |         var C = map.getCenter();  | ||
| + |         var X = C.lng();  | ||
| + |         var Y = C.lat();  | ||
| + | |||
| + |         var AmaxX = allowedBounds.getNorthEast().lng();  | ||
| + |         var AmaxY = allowedBounds.getNorthEast().lat();  | ||
| + |         var AminX = allowedBounds.getSouthWest().lng();  | ||
| + |         var AminY = allowedBounds.getSouthWest().lat();  | ||
| + | |||
| + |         if (X < AminX) {X = AminX;}  | ||
| + |         if (X > AmaxX) {X = AmaxX;}  | ||
| + |         if (Y < AminY) {Y = AminY;}  | ||
| + |         if (Y > AmaxY) {Y = AmaxY;}  | ||
| + |         //alert ("Restricting "+Y+" "+X);  | ||
| + |         map.setCenter(new GLatLng(Y,X));  | ||
| + |       }  | ||
| + |     }  | ||
       </script>  |        </script>  | ||
<body onload="initialize()">     | <body onload="initialize()">     | ||
Revision as of 14:47, 3 April 2015

				
				
				
				
				
	
			