+++ /dev/null
-/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full
- * text of the license. */
-// @require: OpenLayers/Layer/Grid.js
-/**
-* @class
-*/
-OpenLayers.Layer.KaMap = Class.create();
-OpenLayers.Layer.KaMap.prototype =
- Object.extend( new OpenLayers.Layer.Grid(), {
- metaTileHeight: 6,
- metaTileWidth: 6,
-
- DEFAULT_PARAMS: {
- i: 'jpeg',
- map: ''
- },
-
- // this.cellSize = newScale/(oMap.resolution * inchesPerUnit[oMap.units]);
- // kaMap.prototype.geoToPix = function( gX, gY ) { var pX = gX / this.cellSize; var pY = -1 * gY / this.cellSize; }
- initialize: function(name, url, params, origin) {
- this.kaOrigin = origin;
- var newArguments = new Array();
- newArguments.push(name, url, params);
- OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);
- this.params = (params ? params : {});
- if (arguments.length > 0 && params) {
- OpenLayers.Util.applyDefaults(
- this.params,
- this.DEFAULT_PARAMS
- );
- }
- },
- addTile:function(bounds,position) {
- var zoom = this.map.getZoom();
- var resolution = this.map.getResolution();
- var scale = 128000000 / Math.pow(2, zoom);
- // 1280000 is an empirical value for a specific tile server, not yet figured out the right way to do this in general.
- // This will probably be based on map.maxResolution.
- var cellSize = new OpenLayers.Size(resolution*this.tileSize.w, resolution*this.tileSize.h);
- var pX = Math.floor(((bounds.left + this.kaOrigin.lon) / cellSize.w) * this.tileSize.w);
- var pY = -Math.floor(((bounds.top+this.kaOrigin.lat) / cellSize.h) * this.tileSize.h);
- var url = this.getFullRequestString(
- { t: pY,
- l: pX,
- s: scale
- });
- return new OpenLayers.Tile.Image(this, position, bounds,
- url, this.tileSize);
- },
- /** @final @type String */
- CLASS_NAME: "OpenLayers.Layer.KaMap"
-});