搜狗地图的TMS算法与谷歌地图大同小异,但是就因为这点差异,要浪费一些时间去修改代码。不多说,直接上代码,给大家分享。
package util
{
import com.esri.ags.SpatialReference;
import com.esri.ags.geometry.Extent;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.layers.TiledMapServiceLayer;
import com.esri.ags.layers.supportClasses.LOD;
import com.esri.ags.layers.supportClasses.TileInfo;
import flash.net.URLRequest;
import mx.events.Request;
public class SogouTileMapServiceLayer extends TiledMapServiceLayer
{
private var mapMinZoom:int = 1; //最小显示等级
private var mapMaxZoom:int = 18;//最大显示等级
//成员变量
private var _tileInfo:TileInfo = new TileInfo(); // see buildTileInfo()
private var tileUrls:Array = [
"http://p0.go2map.com/seamless1/0/174/",
"http://p1.go2map.com/seamless1/0/174/",
"http://p2.go2map.com/seamless1/0/174/",
"http://p3.go2map.com/seamless1/0/174/"];
public function SogouTileMapServiceLayer()
{
super();
buildTileInfo(); // to create our hardcoded tileInfo
setLoaded(true); // Map will only use loaded layers
}
override public function get fullExtent():Extent
{
return new Extent(-180,-90,180,90, new SpatialReference(4326));
}
override public function get initialExtent():Extent
{
return new Extent(-180,-90,180,90, new SpatialReference(4326));
}
override public function get spatialReference():SpatialReference
{
return new SpatialReference(4326);
}
override public function get tileInfo():TileInfo
{
return _tileInfo;
}
override protected function getTileURL(zoom:Number, row:Number, col:Number):URLRequest
{
zoom = zoom - 2;
var offsetX:Number = Math.pow(2,zoom);
var offsetY:Number = offsetX - 1;
var numX:Number = col - offsetX;
var numY:Number = (-row) + offsetY;
zoom = zoom + 1;
var l:int = 729 - zoom;
if (l == 710) l = 792;
var blo:Number = Math.floor(numX / 200);
var bla:Number = Math.floor(numY / 200);
var blos:String,blas:String;
if (blo < 0)
blos = "M" + ( - blo);
else
blos = "" + blo;
if (bla < 0)
blas = "M" + ( - bla);
else
blas = "" + bla;
var x:String = numX.toString().replace("-","M");
var y:String = numY.toString().replace("-","M");
var num:int = (row+col) % tileUrls.length;
trace(l+" row:"+blos+" col: "+blas+" x: "+x+" y: "+y);
var strURL:String = "";
strURL = tileUrls[num] + l + "/" + blos + "/" + blas + "/" + x + "_" + y + ".GIF";
var urlRequest:URLRequest;
urlRequest = new URLRequest(strURL);
return urlRequest;
}
private function buildTileInfo():void
{
//北京wgs84 墨卡托:3242230,11674840
_tileInfo.height=256;
_tileInfo.width=256;
_tileInfo.origin=new MapPoint(0,0);
_tileInfo.lods = [
//new LOD(0, 1.4047193659, 591657527.591555),
new LOD(1, 0.702359682, 295828763.795777),
new LOD(2, 0.351179841, 147914381.897889),
new LOD(3, 0.175589920, 73957190.948944),
new LOD(4, 0.087794960372, 36978595.474472),
new LOD(12, 0.00034294, 144447.638572),
new LOD(13, 0.0001714745, 72223.819286),
new LOD(14, 0.000085737265, 36111.909643),
new LOD(15, 0.0000428686329, 18055.954822),
new LOD(16, 0.000021434316, 9027.977411),
new LOD(17, 0.00001071715824, 4513.988705),
new LOD(18, 0.0000053585791250, 2256.994353),
];
}
}
}
效果如下:
- 大小: 331.2 KB
分享到:
相关推荐
arcgis for js加载百度地图高德地图天地图
arcgis在线图层加载插件,可以加载百度地图、高德地图等在线地图。MapOnline地图插件_升级版 v1.2,新增了“GoogleEarth地图”与“历史地图”,可以“加载自定义切片”,可以“以切片的方式访问WMS服务”,比ArcMap...
Arcgis Server 动态加载图层 Arcgis Server 9.3 C#
2021 ARCGIS 在线加载天地图影像、注记、矢量、注记成果,4个文件可直接使用
此源码主要是提供天地图的加载方式,主要有天地图标注,矢量地图,影像加载,主要是参考天地图服务地址:http://service.tianditu.gov.cn/
解决arcgis server跨域问题: 1、停掉ArcGIS Server的服务。 2、 打开<ArcGIS Server> \framework\runtime\tomcat\conf\web.xml,注册跨域bean 3、lib下拷贝 cors-filter-2.5.jar java-property-utils-1.9.1.jar包 4...
flex arcgis 加载天地图2.0地图源码
基于ArcGIS API 4.10,通过自定义BaseTileLayer类来实现在三维球体加载显示百度地图和影像地图
研究了好几天终于研究出来了,教你从瓦片下载到离线加载轻松实现arcgis加载google离线地图。帮你学习少走弯路!
arcgis server 10.7.1 安装包
arcgis server10.6.1相关全部安装包。全部都在里面,注意只有安装包哈! ArcGIS_Data_Interop_for_Desktop_1061_163752.exe ArcGIS_Data_Interop_for_Server_1061_164013.exe ArcGIS_Data_Reviewer_for_Desktop_1061...
如果Web站点和ArcGIS Server服务不在同一机器上,但Web站点的机子需要访问服务时,或者是多人开发时用同一台机子的服务时,需要对ArcGIS Server端(服务器端)及Web站点(客户端)进行配置。
使用ArcGIS API for Javascript 4版本的最新版本4.10,通过扩展BaseTileLayer来自定义图层来加载腾讯矢量地图、影像、地形图、以及暗色矢量图
用Java写的ArcGIS Server地图查看软件,配置了java环境变量的系统上可以直接点击运行,输入相应的ArcGIS Server 地图服务Url即可查看地图。
关于ArcGIS Server发布地图的详细流程,适合ArcGIS Server的入门者。
arcgis server 10 许可授权文件,安装arcgis server 授权 导入 ecp
arcgis server9.2 post配置及地图加载
ArcCatalog和ArcGIS Server发布地图详细步骤,ArcGIS Server 10.0版本,本人测试成功后记录的步骤,共大家分享。
使用ArcGIS v10.2.9版本加载天地图的API,以此可以扩展很多东西!
到27年的arcgis server10.5 ecp