From FragoriaWiki
(Difference between revisions)
|
|
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> |
Revision as of 14:48, 3 April 2015
Fragoria Map