`
hi_ajg
  • 浏览: 83317 次
  • 来自: 北京
社区版块
存档分类
最新评论

ArcGIS Server flex加载Google地图

 
阅读更多

       ArcGIS Server flex加载google地图,早已不是什么技术问题。只不过今天结合着项目,底图和项目数据的坐标系统始终没有匹配。即使匹配了,也达不到精度问题。最后,且算是为客户多奉献了一些,将他们的数据重新转换为Web Mector系统,以和Google底图相匹配。囧~~他们的数据量不是有点大,那是相当的大~~

   言归正传,ArcGIS Server加载google地图,只需要重写TiledMapServiceLayer类即可。关键代码如下:

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.*;
	import flash.net.URLRequest;  
	
		//扩展TiledMapServiceLayer图层实现加载google地图  
	public class GoogleMapLayer extends TiledMapServiceLayer  
	{  
		private var _tileInfo:TileInfo=new TileInfo();  
		private var _baseURL:String="";  
		public function GoogleMapLayer()
		{ 
			super();
			buildTileInfo(); 
			setLoaded(true); 
		} 
		override public function get fullExtent():Extent
		{ 
       return new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, new SpatialReference(102113)); 
					} 
		override public function get initialExtent():Extent
		{ 
	return new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, new SpatialReference(102113));   
		}
		override public function get spatialReference():SpatialReference 
		{ 
			return new SpatialReference(102113); 
		} 
		override public function get tileInfo():com.esri.ags.layers.supportClasses.TileInfo 
		{ 
			return _tileInfo; 
		}  
		//获取URL  
		override protected function getTileURL(level:Number, row:Number, col:Number):URLRequest  
		{ 
	var url:String="http://mt0.google.cn/vt/v=w2.114&hl=zh-CN&gl=cn&" + "x=" + col + "&" +  
				"y=" + row + "&" + "z=" + level+ "&s=";  
		return new URLRequest(url); 
		} 
		private function buildTileInfo():void 
		{ 
						_tileInfo.height=256; 
			_tileInfo.width=256; 
			_tileInfo.origin=new MapPoint(-20037508.342787, 20037508.342787);
			_tileInfo.spatialReference=new SpatialReference(102113);  
			_tileInfo.lods = [new LOD(0, 156543.033928, 591657527.591555),  
				new LOD(1,78271.5169639999, 295828763.795777), new LOD(2, 39135.7584820001, 147914381.897889),  
				new LOD(3,19567.8792409999, 73957190.948944),  new LOD(4, 9783.93962049996, 36978595.474472),  
				new LOD(5,4891.96981024998, 18489297.737236),  new LOD(6, 2445.98490512499, 9244648.868618),  
				new LOD(7,1222.99245256249, 4622324.434309),  new LOD(8, 611.49622628138, 2311162.217155),  
				new LOD(9,305.748113140558, 1155581.108577),  new LOD(10, 152.874056570411, 577790.554289),  
				new LOD(11,76.4370282850732, 288895.277144),  new LOD(12, 38.2185141425366, 144447.638572),  
				new LOD(13,19.1092570712683, 72223.819286),  new LOD(14, 9.55462853563415, 36111.909643),  
				new LOD(15,4.77731426794937, 18055.954822),  new LOD(16, 2.38865713397468, 9027.977411),  
				new LOD(17, 1.19432856685505, 4513.988705),  new LOD(18, 0.597164283559817, 2256.994353),  
				new LOD(19, 0.298582141647617, 1128.497176)]; 
				 
		}  
	}  
}



好了,就可以看到效果啦[img][/img]
  

 

  • 大小: 359.5 KB
分享到:
评论
1 楼 q1466136480 2012-03-13  
想问下有可以调用谷歌卫星地图的方法吗?

相关推荐

    Arcgis server for flex 如何调用google地图

    在ArcGIS Server for Flex中调用Google地图涉及到的是地理信息系统(GIS)开发中的跨平台集成。ArcGIS Server是Esri公司提供的一个强大的地理空间服务引擎,用于发布、管理和访问地图及地理数据。Flex则是一种基于...

    JS_建立基于ArcGIS_Server的Javascript_API和Flex_API的地图应用.pdf

    ### 基于ArcGIS Server的JavaScript API与Flex API地图应用构建 #### 一、ArcGIS Server 开发概要 在构建地图应用时,选择合适的技术框架至关重要。本篇文章将重点介绍如何利用ArcGIS Server结合JavaScript API和...

    ArcGIS Server 切片地图_操作手册

    切片地图是ArcGIS Server的一项核心功能,它允许用户将大型地理数据集预先分割成小块,以提高Web地图的加载速度和性能。本操作手册将深入探讨ArcGIS Server如何创建、管理和使用切片地图。 1. **切片地图的概念** ...

    ArcGIS API For Flex

    为了演示如何使用ArcGIS API for Flex加载天地图的瓦片地图,我们创建了一个名为TianDiTuTiledMapServiceLayer的类,继承自TiledMapServiceLayer。在构造函数中,首先初始化TileInfo对象,并设置基本的URL格式,如`...

    ArcGIS API for Flex

    - **相关资源**:官方提供了详细的在线帮助文档和示例代码,开发者可以通过访问 [ESRI 官方网站](http://resources.esri.com/arcgisserver/apis/flex/index.cfm?fa=samples) 获取这些资源。此外,还需要下载 Flex ...

    ArcGIS_Server_9.3_REST中文基础教程.pdf

    - **微软虚拟地球**、**谷歌地图** 和 **谷歌地球**:可以嵌入 ArcGIS Server 提供的地图服务,实现地图的动态加载和显示。 - **利用 Web 浏览器**:直接通过 URL 访问 REST 服务,并在浏览器中显示结果。 ##### 3....

    arcgis-viewer-flex-3.7-src开发包

    2. 配置ArcGIS Server连接和地图服务,以便在Viewer中加载真实数据。 3. 利用源码中的注释和文档,理解各个类和方法的作用,进行功能扩展。 4. 制作自定义皮肤和组件,实现个性化界面。 六、进阶应用 1. 自定义地图...

    TM_C_081113_ArcGIS-API-for-Flex-教程_v1.00.pdf

    - ArcGIS API for Flex 线上帮助系统:[http://resources.esri.com/arcgisserver/apis/flex/index.cfm?fa=samples](http://resources.esri.com/arcgisserver/apis/flex/index.cfm?fa=samples) - ArcGIS API for Flex...

    arcgis_api_for_flex_3_5.rar

    3. 地图服务(Map Service):通过ArcGIS Server提供的地图服务,可以在Flex应用中加载和操作地理数据。这些服务支持动态渲染和缓存两种模式。 4. 地图操作:包括平移、缩放、旋转、漫游等,ArcGIS API提供了丰富的...

    arcgis9.3基础教程

    通过上述知识点的总结,我们可以看出《ArcGISServer9.3REST基础教程》不仅深入浅出地介绍了REST API 的基本概念和原理,还详细讲解了如何使用ArcGIS Server REST API 来管理和发布各种地理信息服务,并提供了丰富的...

    Flex Gis 开发

    2. **使用地图**:集成地图服务,如Google Maps API或ArcGIS Server API,用于显示地图数据。 3. **地图使用范围设置**:限制地图的显示范围,如设定特定的经纬度坐标范围。 4. **添加工具栏**:为地图添加工具栏,...

    FlashBuilder_4_Plugin_LS10

    FlashBuilder 4 提供了对Google Maps API 和 ESRI ArcGIS API 的支持,使得在Flex中实现地图功能变得轻松。 1. Google Maps API 集成:通过引入Google Maps API库,开发者可以创建具有地图展示、标记定位、路线规划...

Global site tag (gtag.js) - Google Analytics