搜狗地图的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
分享到:
相关推荐
6. 测试和优化:加载地图后,进行测试,检查地图加载速度、显示效果,以及与其他ArcGIS图层的融合情况,必要时进行优化。 通过以上步骤,我们可以成功地在ArcGIS中加载并使用百度地图作为背景图层。这个过程不仅...
本文将深入探讨如何使用ArcGIS for JavaScript加载天地图(TianDiTu),这是一个由中国国家基础地理信息中心提供的免费、权威的测绘地理信息服务。 首先,我们要了解天地图(TianDiTu)提供了丰富的地理信息资源,...
标题“arcgis加载高德在线地图”指的是在ArcGIS环境中,利用编程接口(API)集成高德地图的服务,使得用户可以在ArcGIS应用程序中查看和操作高德地图的数据。高德地图是中国领先的数字地图提供商,提供了丰富的地理...
arcgis在线图层加载插件,可以加载百度地图、高德地图等在线地图。MapOnline地图插件_升级版 v1.2,新增了“GoogleEarth地图”与“历史地图”,可以“加载自定义切片”,可以“以切片的方式访问WMS服务”,比ArcMap...
在ArcGIS Server中,动态加载图层是一种优化地图服务性能的技术。它允许用户根据需要在运行时动态地添加、删除或更改地图中的图层,而不是一次性加载所有数据。这种技术对于处理大量数据或者需要实时更新的地图应用...
"arcgis直接加载天地图lyr文件"这个主题涉及到如何在ArcGIS中快速简便地接入天地图的服务。天地图是由中国国家测绘地理信息局主导建设的国家级地理信息公共服务平台,提供了丰富的地图服务,包括基础地图、专题地图...
ArcCatalog 和 ArcGIS Server 发布地图详细步骤 ArcCatalog 和 ArcGIS Server 是 Esri 公司开发的 GIS software,广泛应用于地理信息系统、空间分析、地图制图等领域。发布地图是 ArcGIS Server 的一个重要功能,...
在2021年,ARCGIS进一步强化了在线加载和使用各种地图资源的能力,其中包括天地图影像、注记、矢量数据以及注记成果。下面我们将详细探讨这些知识点。 1. **天地图影像**:天地图是中国国家基础地理信息中心提供的...
6. **优化与更新**:对于大型区域或需要频繁更新的地图,可以考虑使用GIS服务器(如ArcGIS Server)发布离线地图服务,这样在客户端可以更高效地加载,并且方便更新地图数据。 通过这个实例,你不仅可以掌握在...
本教程将详细阐述如何利用ArcGIS for JavaScript API来加载百度地图、高德地图和天地图,实现跨平台的地图服务整合。 首先,我们需要了解ArcGIS for JavaScript API的基本概念。API提供了丰富的地图操作和空间分析...
解决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...
在本文中,我们将深入探讨如何使用ArcGIS API 4.10来加载并显示百度地图,包括地形图和影像地图,特别是在三维空间环境中的应用。ArcGIS API是Esri公司提供的一个强大的地理信息系统(GIS)开发框架,它允许开发者...
本教程将重点讲解如何利用ArcGIS API加载天地图和高德地图,以便在网页中展示这两种常见的在线地图服务。 首先,我们需要了解ArcGIS for JavaScript API的基本结构。API提供了丰富的地图操作、图层管理、地理编码、...
5. **添加图层**:在输入正确的URL后,点击“确定”,ArcMap会尝试连接到服务并加载地图。如果成功,新图层将出现在“内容”列表中,可以调整其透明度、显示比例等属性。 6. **调整图层顺序和可见性**:在“内容”...
在本文中,我们将深入探讨如何使用ArcGIS API for JavaScript 4.10版本来加载腾讯地图,包括矢量地图、影像、地形图以及暗色矢量图。ArcGIS API for JavaScript是一个强大的工具,允许开发人员在Web应用中集成地理...
本文将详细阐述如何在ArcGIS中加载并使用在线天地图,以便于进行地理空间数据的展示和分析。 首先,我们要了解什么是天地图。天地图是由中国测绘科学研究院开发的一款基于Web的地理信息服务平台,它提供了丰富的...
3. **地图图层**:在ArcGIS for Flex中,你可以通过创建AGSLayer对象来加载地图图层。对于天地图2.0,你需要找到对应的WMS或WMTS服务URL,并将其设置到AGSLayer的url属性中。 4. **添加图层到地图**:在Flex应用中...
在 OsgEarth 中加载谷歌卫星地图的 ArcGISServer 服务教程是指通过使用水经注万能地图下载器下载的谷歌卫星地图瓦片数据,在 ArcGIS 中发布服务,并在 OsgEarth 中加载发布好的瓦片服务。以下是相关知识点: 1. ...
本文档详细介绍了使用ArcGIS Server进行地图切片及更新切片的流程,该流程分为几个主要步骤:创建地图模版、发布和浏览地图服务、地图切片、更新地图切片。 首先,创建地图模版是通过ArcMap软件进行的。ArcMap是一...
2. **放置jar包**:将jar文件添加到ArcGIS Server的`<arcgisserver_install_dir>/java/lib`目录下,这是ArcGIS Server加载自定义Java类的位置。 3. **配置服务器**:在ArcGIS Server管理器中,需要更新服务器的Web ...