当前位置: 首页 > 工具软件 > OpenScales > 使用案例 >

让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;
    }
   }

}
}

 类似资料: