让openscales支持Googlemap
段干浩荡
2023-12-01
让openscales支持Googlemap
openscales是AS3版的开源地图客户端,据说源于Openlayer。
package
{
import org.openscales.core.basetypes.Bounds;
import org.openscales.core.layer.osm.OSM;
public class GoogleMap extends OSM
{
public function GoogleMap(name:String, isBaseLayer:Boolean = false, visible:Boolean = true,
projection:String = null, proxy:String = null)
{
var url:String = "http://localhost:8080/chunmapService/test?SERVICE=GoogleMap";
super(name, url, isBaseLayer, visible, projection, proxy);
this.altUrls = [ "http://localhost:8080/chunmapService/test?SERVICE=GoogleMap", "http://localhost:8080/chunmapService/test?SERVICE=GoogleMap" ];
this.generateResolutions(19, OSM.DEFAULT_MAX_RESOLUTION);
}
override public function getURL(bounds:Bounds):String
{
var res:Number = this.map.resolution;
var x:Number = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileWidth));
var y:Number = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileHeight));
var z:Number = this.map.zoom;
var limit:Number = Math.pow(2, z);
if (y < 0 || y >= limit ||x < 0 || x >= limit) {
return "";
} else {
x = ((x % limit) + limit) % limit;
y = ((y % limit) + limit) % limit;
var url:String = this.url;
var path:String = "&x=" + x + "&y=" + y + "&z="+z+"&f=.jpeg";
if (this.altUrls != null) {
url = this.selectUrl(this.url + path, this.getUrls());
}
return url + path;
}
}
}
}