Mercurial > hg > batmud > gmap2
view map.js @ 170:fb98e644b80c gmap2
Fix coordinates display.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 11 Mar 2014 20:19:58 +0200 |
parents | 21cf84dcae73 |
children | b874aae3e75f |
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 pmapLatLngToMapCoord(latLng, zoom) { msiny = Math.sin((latLng.lat() * Math.PI) / 180.0); px = latLng.lng() * pmapTilePxPerDeg; py = 0.5 * Math.log((1 + msiny) / (1 - msiny)) * - pmapTilePxPerRad; numTiles = 1 << zoom; return new google.maps.Point(px * numTiles, py * numTiles); } 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() { var pmapBatMap = new google.maps.ImageMapType( { getTileUrl: function(coord, zoom) { return "tiles/"+ zoom +"/"+ coord.y +"/"+ coord.x +".png"; }, tileSize: new google.maps.Size(256, 256), maxZoom: 10, minZoom: 3, radius: 1738000, name: 'BatMap' }); 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 = pmapLatLngToMapCoord(point.latLng, 7); var tx = Math.round((p.x + 1) / 2); var ty = Math.round((p.y + 1) / 2); 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; }