Template:Fragoria Map
From FragoriaWiki
(Difference between revisions)
Line 6: | Line 6: | ||
<script> | <script> | ||
- | + | var moonTypeOptions = { | |
getTileUrl: function(coord, zoom) { | getTileUrl: function(coord, zoom) { | ||
- | + | var normalizedCoord = getNormalizedCoord(coord, zoom); | |
- | + | if (!normalizedCoord) { | |
- | + | return null; | |
} | } | ||
var bound = Math.pow(2, zoom); | var bound = Math.pow(2, zoom); | ||
- | return '/maptiles/' + | + | return '/maptiles/' + zoom + '/' + normalizedCoord.y + '_' + normalizedCoord.x + '.jpg'; |
- | + | ||
- | + | ||
}, | }, | ||
tileSize: new google.maps.Size(256, 256), | tileSize: new google.maps.Size(256, 256), | ||
Line 22: | Line 20: | ||
radius: 1738000, | radius: 1738000, | ||
name: 'Fragoria' | name: 'Fragoria' | ||
- | + | }; | |
- | + | var moonMapType = new google.maps.ImageMapType(moonTypeOptions); | |
- | + | function initialize() { | |
- | + | var Fragotown = new google.maps.LatLng(-72, 13); | |
- | + | var mapOptions = { | |
- | + | center: Fragotown, | |
- | + | zoom: 4, | |
- | + | streetViewControl: false, | |
- | + | mapTypeControlOptions: { | |
- | + | mapTypeIds: ['moon'] | |
- | + | } | |
- | + | }; | |
- | + | var map = new google.maps.Map(document.getElementById('map_canvas'), | |
- | + | mapOptions); | |
- | + | map.mapTypes.set('moon', moonMapType); | |
- | + | map.setMapTypeId('moon'); | |
- | + | } | |
- | + | // Normalizes the coords that tiles repeat across the x axis (horizontally) | |
- | + | // like the standard Google map tiles. | |
- | + | function getNormalizedCoord(coord, zoom) { | |
- | + | var y = coord.y; | |
- | + | var x = coord.x; | |
- | + | // tile range in one direction range is dependent on zoom level | |
- | + | // 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc | |
- | + | var tileRange = 2<< zoom; | |
- | + | // repeat across y-axis (vertically) | |
- | + | if (y < 0 || y >= tileRange) { | |
- | + | y = (y % tileRange + tileRange) % tileRange; | |
- | + | } | |
- | + | // repeat across x-axis | |
- | + | if (x < 0 || x >= tileRange) { | |
- | + | x = (x % tileRange + tileRange) % tileRange; | |
- | + | } | |
- | + | ||
- | + | return { | |
- | + | x: x, | |
- | + | y: y | |
- | + | }; | |
- | + | } | |
- | + | </script> | |
- | + | ||
<body onload="initialize()"> | <body onload="initialize()"> | ||
<center> | <center> |
Revision as of 15:02, 3 April 2015