Mercurial > hg > batmud > gmap2
view map.js @ 171:b874aae3e75f gmap2
Cleanups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 11 Mar 2014 20:48:17 +0200 |
parents | fb98e644b80c |
children | c62f0cf2bf16 |
line wrap: on
line source
// $Id: map.js 2404 2009-12-24 20:01:32Z jeskko $ var pmap; var pmapCanvas; var proj; var pmapTileSize = 256; var pmapTileOrig = pmapTileSize / 2.0; var pmapTilePxPerDeg = pmapTileSize / 360.0; var pmapTilePxPerRad = pmapTileSize / (2.0 * Math.PI); function pmapMinMax(vval, vmin, vmax) { return Math.min(Math.max(vval, vmin), vmax); } function pmapLatLngToMapCoords(latLng) { msiny = pmapMinMax(Math.sin((latLng.lat() * Math.PI) / 180.0), -0.9999, 0.9999); px = latLng.lng() * pmapTilePxPerDeg; py = 0.5 * Math.log((1 + msiny) / (1 - msiny)) * - pmapTilePxPerRad; return new google.maps.Point(Math.round((px * pmapTileOrig + 1) / 2), Math.round((py * pmapTileOrig + 1) / 2)); } function CanvasProjectionOverlay() {} CanvasProjectionOverlay.prototype = new google.maps.OverlayView(); CanvasProjectionOverlay.prototype.constructor = CanvasProjectionOverlay; CanvasProjectionOverlay.prototype.onAdd = function(){}; CanvasProjectionOverlay.prototype.draw = function(){}; CanvasProjectionOverlay.prototype.onRemove = function(){}; function pmapInitializeMap() { // Initialize custom imagemap with our tiles var pmapBatMap = new google.maps.ImageMapType( { getTileUrl: function(coord, zoom) { return "tiles/"+ zoom +"/"+ coord.y +"/"+ coord.x +".png"; }, tileSize: new google.maps.Size(pmapTileSize, pmapTileSize), maxZoom: 10, minZoom: 3, radius: 1738000, name: 'BatMap' }); // Create map controller object pmap = new google.maps.Map(document.getElementById("map"), { zoom: 3, center: new google.maps.LatLng(-15, 10), streetViewControl: false, draggableCursor: 'crosshair', draggingCursor: 'pointer', mapTypeControl: false, scaleControl: false, rotateControl: false, overviewMapControl: false, }); pmap.mapTypes.set('BatMap', pmapBatMap); pmap.setMapTypeId('BatMap'); pmapCanvas = new CanvasProjectionOverlay(); pmapCanvas.setMap(pmap); google.maps.event.addListener(pmap, "mousemove", pmapCoordinateListener); pmapInitializeIcons(); pmapInitializeMarkers(); pmapInitializeNav(); } // // Listener for updating coordinates display // function pmapCoordinateListener(point) { var p = pmapLatLngToMapCoords(point.latLng); var tx = p.x; var ty = p.y; var cx = tx; var cy = ty; var cont = "Deep Sea"; for (i = 0; i < pmapContinents.length; i++) { var c = pmapContinents[i]; if (c != null && tx > c[1] && tx < c[3] && ty > c[2] && ty < c[4]) { cont = c[0]; cx = tx - c[1]; cy = ty - c[2]; break; } } document.getElementById("xcoord").innerHTML = cx; document.getElementById("ycoord").innerHTML = cy; document.getElementById("continent").innerHTML = cont; }