Source code of a graphical tool for drawing and computing distances over Google maps.
Run Tool | index.html | main.css | formatters.js | geoCircle.js | geoCode.js | geo.js | index.js | mapControls.js | tableManager.js | util.js | wayPoint.js | wayPointsManager.js
// Copyright 2006-2008 (c) Paul Demers <paul@acscdg.com>
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA., or visit one
// of the links here:
// http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
// http://www.acscdg.com/LICENSE.txt
//////////////////////////////////////////////////////////////////
//
// Utility functions for resizing windows.
// Web site with this code running: http://www.acscdg.com/
//
//// External dependencies:
// _fullyLoaded, _mapElement, _map from index.js.
//
//// Utility method for browser compatibility.
function WindowSize(width, height)
{
this.width = width;
this.height = height;
}
function getWindowSize()
{
var width, height;
if (self.innerHeight) // all except Explorer
{
width = self.innerWidth;
height = self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientHeight)
{
width = document.documentElement.clientWidth;
height = document.documentElement.clientHeight; // Explorer 6 Strict Mode
}
else if (document.body) // other Explorers
{
width = document.body.clientWidth;
height = document.body.clientHeight;
}
return new WindowSize(width, height);
}
////
//
//
//// Spacer constants:
var mapWidthOffset = 680; // go live value 680
var mapHeightOffset = 190; // go live value 190
var mapWidthInnerOffset = 10; // go live value 10
////
//
//
//// Called when the browser is resized.
function resizeBody()
{
if (!_fullyLoaded)
return;
// Grab the center before resizing. It will be restored later.
var mapCenter = _map.getCenter();
// This is needed on IE6, or else sometimes the map is blank until it is resized by hand.
if (mapCenter == null)
return;
var wSize = getWindowSize();
var wWidth = wSize.width;
var wHeight = wSize.height;
//GLog.write(_innerElement.offsetWidth + " " + _tableElement.offsetWidth + " " + _innerElement.offsetHeight);
var mWidth = _innerElement.offsetWidth - _tableElement.offsetWidth - mapWidthInnerOffset;
if (mWidth < 0)
mWidth = wWidth - mapWidthOffset; // The first time through in IE, the widths are the same.
_mapElement.style.width = mWidth + "px";
var mHeight = wHeight - mapHeightOffset;
_mapElement.style.height = mHeight + "px";
//GLog.write(mWidth + " " + mHeight);
_map.checkResize();
_map.setCenter(mapCenter);
}