|
|
(248 intermediate revisions not shown) |
Line 1: |
Line 1: |
| <html> | | <html> |
- | <title>Fragoria Map</title>
| |
- | <link rel="stylesheet" href="/maps/documentation/javascript/examples/default.css" />
| |
| <link rel="stylesheet" href="/maptiles/noimageshadow.css"> | | <link rel="stylesheet" href="/maptiles/noimageshadow.css"> |
- | <script src="/maptiles/js?v=3.exp&sensor=false"></script>
| |
| | | |
- | <script> | + | <script type="text/javascript" src="/maptiles/js?v=3.exp&sensor=false"></script> |
- | var moonTypeOptions = {
| + | <script type="text/javascript" src="/mapdata/markerwithlabel.js"></script> |
- | getTileUrl: function(coord, zoom) {
| + | <script type="text/javascript" src="/wiki/skins/common/fmap.js"></script> |
- | var normalizedCoord = getNormalizedCoord(coord, zoom);
| + | |
- | if (!normalizedCoord) {
| + | |
- | return null;
| + | |
- | }
| + | |
- | var bound = Math.pow(2, zoom);
| + | |
- | return '/maptiles/' + zoom + '/' + normalizedCoord.y + '_' + normalizedCoord.x + '.jpg';
| + | |
- | },
| + | |
- | tileSize: new google.maps.Size(256, 256),
| + | |
- | maxZoom: 4,
| + | |
- | minZoom: 1,
| + | |
- | radius: 1738000,
| + | |
- | name: 'Fragoria'
| + | |
- | };
| + | |
| | | |
- | var moonMapType = new google.maps.ImageMapType(moonTypeOptions);
| + | <style> |
- | | + | .maplabels { |
- | function initialize() {
| + | color: #000; |
- | var Fragotown = new google.maps.LatLng(-89.623848,33.001326);
| + | // font-family: 'Comic Sans MS', cursive, sans-serif; |
- | var mapOptions = {
| + | line-height: 1em; |
- | center: Fragotown,
| + | font-size: 13px; |
- | zoom: 4,
| + | text-shadow: 0px 0px 2px white; |
- | streetViewControl: false,
| + | font-weight: bold; |
- | mapTypeControlOptions: {
| + | border: 0px solid black; |
- | mapTypeIds: ['moon']
| + | background: transparent url('/wiki/images/e/eb/Backgroundgradient.png'); |
- | }
| + | background-size: 100% 100%; |
- | };
| + | background: radial-gradient(white, rgba(255, 255, 255, .6), rgba(255, 255, 255, .0), rgba(255, 255, 255, 0)); |
- | var map = new google.maps.Map(document.getElementById('map_canvas'),
| + | } |
- | mapOptions);
| + | </style> |
- | map.mapTypes.set('moon', moonMapType);
| + | |
- | map.setMapTypeId('moon');
| + | |
- | | + | |
- | // Bounds
| + | |
- | var strictBounds = new google.maps.LatLngBounds(
| + | |
- | new google.maps.LatLng(-89.957,-125),
| + | |
- | new google.maps.LatLng(65,125)
| + | |
- | );
| + | |
- | // Listen for the CENTER_CHANGED event
| + | |
- | google.maps.event.addListener(map, 'center_changed', function() {
| + | |
- | if (strictBounds.contains(map.getCenter())) return;
| + | |
- | // We're out of bounds - Move the map back within the bounds
| + | |
- | var c = map.getCenter(),
| + | |
- | x = c.lng(),
| + | |
- | y = c.lat(),
| + | |
- | maxX = strictBounds.getNorthEast().lng(),
| + | |
- | maxY = strictBounds.getNorthEast().lat(),
| + | |
- | minX = strictBounds.getSouthWest().lng(),
| + | |
- | minY = strictBounds.getSouthWest().lat();
| + | |
- | if (x < minX) x = minX;
| + | |
- | if (x > maxX) x = maxX;
| + | |
- | if (y < minY) y = minY;
| + | |
- | if (y > maxY) y = maxY;
| + | |
- | map.setCenter(new google.maps.LatLng(y, x));
| + | |
- | });
| + | |
- | // Limit the zoom level
| + | |
- | google.maps.event.addListener(map, 'zoom_changed', function() {
| + | |
- | if (map.getZoom() < minZoomLevel) map.setZoom(minZoomLevel);
| + | |
- | });
| + | |
- | | + | |
- | // Origins, anchor positions and coordinates of the marker
| + | |
- | // increase in the X direction to the right and in
| + | |
- | // the Y direction down.
| + | |
- | var image = {
| + | |
- | url: '/wiki/images/c/c3/Greendungeon.png',
| + | |
- | // (width, length).
| + | |
- | size: new google.maps.Size(42,40),
| + | |
- | // The origin for this image is 0,0.
| + | |
- | origin: new google.maps.Point(10.5,20),
| + | |
- | // The anchor for this image is the base of the flagpole at 0,32.
| + | |
- | anchor: new google.maps.Point(10.5,20)
| + | |
- | };
| + | |
- | // Shapes define the clickable region of the icon.
| + | |
- | // The type defines an HTML <area> element 'poly' which
| + | |
- | // traces out a polygon as a series of X,Y points. The final
| + | |
- | // coordinate closes the poly by connecting to the first
| + | |
- | // coordinate.
| + | |
- | var shape = {
| + | |
- | coords: [0, 0, 0, 20, 21, 20, 21, 0],
| + | |
- | type: 'poly'
| + | |
- | };
| + | |
- | | + | |
- | var FragotownMarker = new google.maps.Marker({
| + | |
- | position: new google.maps.LatLng(-89.623848,33.001326),
| + | |
- | map: map,
| + | |
- | draggable:true,
| + | |
- | title:"Fragotown"
| + | |
- | });
| + | |
- | | + | |
- | var DarkKonungMarker = new google.maps.Marker({
| + | |
- | position: new google.maps.LatLng(-89.128166,16.829451),
| + | |
- | map: map,
| + | |
- | icon: "/wiki/images/f/f7/Greendungeonicon.png",
| + | |
- | title:"Dark Konung's Tomb",
| + | |
- | shape: shape
| + | |
- | });
| + | |
- | | + | |
- | //Report Coordinates
| + | |
- | google.maps.event.addListener(FragotownMarker, 'dragend', function(evt){
| + | |
- | document.getElementById('current').innerHTML = '<p>Marker dropped: ( ' + evt.latLng.lat().toFixed(6) + ',' + evt.latLng.lng().toFixed(6) + ')</p>';
| + | |
- | });
| + | |
- | google.maps.event.addListener(FragotownMarker, 'dragstart', function(evt){
| + | |
- | document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>';
| + | |
- | });
| + | |
- | }
| + | |
- | | + | |
- | // 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;
| + | |
- | return null;
| + | |
- | }
| + | |
- | | + | |
- | // repeat across x-axis
| + | |
- | if (x < 0 || x >= tileRange) {
| + | |
- | // x = (x % tileRange + tileRange) % tileRange;
| + | |
- | return null;
| + | |
- | }
| + | |
- |
| + | |
- | return {
| + | |
- | x: x,
| + | |
- | y: y
| + | |
- | };
| + | |
- | | + | |
- | }
| + | |
| | | |
| + | <script> |
| + | $('.map_canvas').css('width', '100%').css('width', '+=1px'); |
| </script> | | </script> |
- |
| |
- | <body onload="initialize()">
| |
| <center> | | <center> |
- | <div id="current">Coordinates</div> | + | <div> |
- | <div style="box-shadow: 2px 2px 5px #999999;border: 1px solid black;width: 97%; height: 585px;background-image:url('/wiki/images/1/1f/Background.jpg');" id="map_canvas">
| + | <div style="border:33px solid transparent;border-image: url(/wiki/images/d/d9/Mapborder.png) 36 round;z-index:9999999999;"> |
- | </div>
| + | <div style="border:1px solid black;border-radius: 18px;border: width: 100%; height: 530px;background-image:url('/wiki/images/1/1f/Background.jpg');margin: -23px -24px -24px -24px;" id="map_canvas"> |
| + | </div></div> |
| + | <div id="current"> </div> |
| + | <input type="button" value="Show All" onclick="showallMarkers();showallPolylines(999);"> |
| + | <input type="button" value="Road Stones" onclick="displayMarkers(100);showallPolylines(999);"> |
| + | <input type="button" value="Green Dungeons" onclick="displayMarkers(10);hideallPolylines();"> |
| + | <input type="button" value="Red Dungeons" onclick="displayMarkers(20);hideallPolylines();"> |
| + | <input type="button" value="Hide All" onclick="hideallMarkers();hideallPolylines();"> |
| </center> | | </center> |
- | </body>
| + | |
| </html> | | </html> |