Template:Fragoria Map
From FragoriaWiki
(Difference between revisions)
| Line 40: | Line 40: | ||
map.setMapTypeId('moon'); | map.setMapTypeId('moon'); | ||
| - | // | + | // 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 | + | var allowedBounds = new GLatLngBounds(new GLatLng(-50,80), new GLatLng(50,-80)); |
| - | + | ||
| - | + | // 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; | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | if( | + | |
| - | + | ||
} | } | ||
| - | + | // 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)); | ||
} | } | ||
| - | |||
| - | |||
var marker = new google.maps.Marker({ | var marker = new google.maps.Marker({ | ||
Revision as of 21:43, 3 April 2015

