/* Copyright (c) 2006-2007 MetaCarta, Inc., published under a modified BSD license. * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt * for the full text of the license. */ /** * @requires OpenLayers/Layer/EventPane.js * @requires OpenLayers/Layer/FixedZoomLevels.js * * Class: OpenLayers.Layer.VirtualEarth * * Inherits: * - * - */ OpenLayers.Layer.VirtualEarth = OpenLayers.Class( OpenLayers.Layer.EventPane, OpenLayers.Layer.FixedZoomLevels, { /** * Constant: MIN_ZOOM_LEVEL * {Integer} 1 */ MIN_ZOOM_LEVEL: 1, /** * Constant: MAX_ZOOM_LEVEL * {Integer} 17 */ MAX_ZOOM_LEVEL: 17, /** * Constant: RESOLUTIONS * {Array(Float)} Hardcode these resolutions so that they are more closely * tied with the standard wms projection */ RESOLUTIONS: [ 1.40625, 0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 0.0006866455078125, 0.00034332275390625, 0.000171661376953125, 0.0000858306884765625, 0.00004291534423828125 ], /** * APIProperty: type * {VEMapType} */ type: null, /** * Constructor: OpenLayers.Layer.VirtualEarth * * Parameters: * name - {String} * options - {Object} */ initialize: function(name, options) { OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments); OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this, arguments); }, /** * Method: loadMapObject */ loadMapObject:function() { // create div and set to same size as map var veDiv = OpenLayers.Util.createDiv(this.name); var sz = this.map.getSize(); veDiv.style.width = sz.w; veDiv.style.height = sz.h; this.div.appendChild(veDiv); try { // crash prevention this.mapObject = new VEMap(this.name); } catch (e) { } if (this.mapObject != null) { try { // this is to catch a Mozilla bug without falling apart this.mapObject.LoadMap(null, null, this.type); } catch (e) { } this.mapObject.HideDashboard(); } }, /** * APIMethod: getWarningHTML * * Returns: * {String} String with information on why layer is broken, how to get * it working. */ getWarningHTML:function() { var html = ""; html += "The VE Layer was unable to load correctly.
"; html += "
"; html += "To get rid of this message, select a new BaseLayer " html += "in the layer switcher in the upper-right corner.
"; html += "
"; html += "Most likely, this is because the VE library"; html += " script was either not correctly included.
"; html += "
"; html += "Developers: For help getting this working correctly, "; html += "