# HG changeset patch # User Matti Hamalainen # Date 1394563697 -7200 # Node ID b874aae3e75f2b19870b80a4a7aea6f6a930b73d # Parent fb98e644b80c76d5c7ad4f7d2a541784fb0725a3 Cleanups. diff -r fb98e644b80c -r b874aae3e75f map.js --- a/map.js Tue Mar 11 20:19:58 2014 +0200 +++ b/map.js Tue Mar 11 20:48:17 2014 +0200 @@ -10,14 +10,20 @@ var pmapTilePxPerRad = pmapTileSize / (2.0 * Math.PI); -function pmapLatLngToMapCoord(latLng, zoom) +function pmapMinMax(vval, vmin, vmax) { - msiny = Math.sin((latLng.lat() * Math.PI) / 180.0); + 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; - numTiles = 1 << zoom; - return new google.maps.Point(px * numTiles, py * numTiles); + + return new google.maps.Point(Math.round((px * pmapTileOrig + 1) / 2), Math.round((py * pmapTileOrig + 1) / 2)); } @@ -31,6 +37,7 @@ function pmapInitializeMap() { + // Initialize custom imagemap with our tiles var pmapBatMap = new google.maps.ImageMapType( { getTileUrl: function(coord, zoom) @@ -38,13 +45,14 @@ return "tiles/"+ zoom +"/"+ coord.y +"/"+ coord.x +".png"; }, - tileSize: new google.maps.Size(256, 256), + 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, @@ -78,9 +86,9 @@ // 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 p = pmapLatLngToMapCoords(point.latLng); + var tx = p.x; + var ty = p.y; var cx = tx; var cy = ty;