`
Virgo_S
  • 浏览: 1153417 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ArcGIS Flex API读取MapABC中的地图

    博客分类:
  • Flex
阅读更多
效果如下:



MapABCTileMapServiceLayer.as
package com.esri.arcgis.flex.sample
{
	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;
	
	public class MapABCTileMapServiceLayer extends TiledMapServiceLayer
	{
		//成员变量
		private var _tileInfo:TileInfo = new TileInfo(); // see buildTileInfo()
		
		
		public function MapABCTileMapServiceLayer()
		{
			super();
			
			buildTileInfo(); // to create our hardcoded tileInfo
			
			setLoaded(true); // Map will only use loaded layers
		}
		
		//----------------------------------
		//  全屏范围
		//  - required to calculate the tiles to use
		//----------------------------------
		override public function get fullExtent():Extent
		{
			return new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, new SpatialReference(102113));
		}
		
		//----------------------------------
		//  初始化范围
		//  - needed if Map doesn't have an extent
		//----------------------------------
		
		override public function get initialExtent():Extent
		{
			return new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, new SpatialReference(102113));
		}
		
		//----------------------------------
		//  空间参考系
		//  - needed if Map doesn't have a spatialReference
		//----------------------------------
		override public function get spatialReference():SpatialReference
		{
			return new SpatialReference(102113);
		}
		
		//----------------------------------
		//  tileInfo
		//----------------------------------
		override public function get tileInfo():TileInfo
		{
			return _tileInfo;
		}
		
		//----------------------------------
		//  units
		//  - needed if Map doesn't have it set
		//----------------------------------
		/*
		override public function get units():String
		{
		return "esriDecimalDegrees";
		}//*/
		
		//--------------------------------------------------------------------------
		//
		//  关键方法,用于读取服务器上的缓存图片
		//      getTileURL(level:Number, row:Number, col:Number):URLRequest
		//
		//--------------------------------------------------------------------------
		override protected function getTileURL(level:Number, row:Number, col:Number):URLRequest
		{
			//col%4是让其生成随机的0-3之间的数,缓存在0-3上都有相同的备份
			// http://emap0.mapabc.com/mapabc/maptile?v=w2.61&x=845&y=387&z=10
			
			var url:String = "http://emap"+(col%4)+".mapabc.com/mapabc/maptile?v=w2.61&&"+
				"x=" + col + "&" +
				"y=" + row + "&" +
				"z=" + level;
			
			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)
			];
		}
	}
}

ArcGISMapABCMap.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   xmlns:mapabc="com.esri.arcgis.flex.sample.*" 
			   xmlns:esri="http://www.esri.com/2008/ags">
	<esri:Map>
		<mapabc:MapABCTileMapServiceLayer id="googleMap" />
	</esri:Map>
</s:Application>





  • 大小: 146.7 KB
分享到:
评论

相关推荐

    在ArcGIS Flex API中使用天地图的地名搜索服务

    在ArcGIS Flex API中使用天地图的地名搜索服务。源代码中通过ArcGIS Flex API封装了TianDiTuLocationTask类,接口类似ArcGIS Flex API中task类。

    ArcGIS Flex API和SuperMap Flex API实现的军标箭头库

    在军标箭头库的实现中,开发者可能利用了ArcGIS Flex API的图形对象和符号系统来绘制各种军标箭头,这些箭头可以表示战术动作、方向或兵力部署等。 另一方面,SuperMap Flex API则是SuperMap公司为Flex开发者提供的...

    arcgis for flex api 2.5

    arcgis flex api 2.5 最新

    arcgis flex api 3.0 离线帮助文档chm格式

    arcgis flex api 3.0 离线帮助文档chm格式 绝对好用!

    建立基于ArcGIS Flex API的地图应用

    使用ArcGIS API For Flex,开发者可以轻松地在Flex应用中嵌入地图,实现地图的浏览、查询、标注等功能。 在Flex开发中,ArcGIS API For Flex提供了丰富的类库和方法,用于创建地图控件、加载地图服务、处理图层、...

    src.rar_ARCGIS FOR FLEX API_arcgis_arcgis flex api_arcgis for fl

    ArcGIS for Flex API 是Esri公司为Flex开发者提供的一款强大的地图服务开发工具,它允许开发者在Adobe Flex环境中创建丰富的、交互式的Web GIS应用。本资源包含ArcGIS for Flex API的全部代码实例,是深入理解和学习...

    ArcGIS Flex API 中的 Flex 技-面向对象

    ### ArcGIS Flex API 中的Flex技术—面向对象详解 在探讨ArcGIS Flex API与面向对象编程的融合之前,我们先来简述一下Flex技术的基本概念及其在地理信息系统(GIS)领域的应用价值。Flex是一个开源的框架,由Adobe...

    ArcGIS Flex API 2.0离线参考

    ArcGIS Flex API是Esri公司开发的一个强大的地图服务框架,用于构建交互式的Web GIS应用程序。API基于Adobe Flex技术,允许开发者利用Flex的富互联网应用(RIA)功能来构建功能丰富的地图应用。 此离线参考可能包含...

    ARCGIS Flex API 2.4版本 离线帮助

    1. Map:地图组件是ARCGIS Flex API的核心,它负责展示地图内容,包括图层、标注、图例等。 2. Layer:图层是地图上的数据容器,可以包含各种数据源,如ArcGIS Server服务、WMS服务、KML文件等。 3. Graphic:图形...

    ArcGIS Flex API 中的 Flex 技-xml解析

    在ArcGIS Flex API中,XML经常被用作传输和表示地理信息的一种方式,包括地理坐标、地图特性等。因此,掌握XML的解析技术对于开发者来说是非常重要的。 #### 三、XML结构与遍历方式 在深入探讨XML解析之前,首先...

    ArcGIS Flex API—高级篇

    在**ArcGIS Flex API**中,聚合是一种处理大量地理信息的有效方法。特别是在处理密集的数据点时,通过聚合可以将多个点合并为一个代表性的点,以此来提高地图的可读性和性能。 - **自定义聚合**:例如,在给定的...

    基于ArcGIS Flex API开发Flex AIR Mobile应用

    ArcGIS Flex API是Esri公司提供的一款强大的地图服务接口,它允许开发者将地理信息系统(GIS)功能集成到Flex应用中,而Adobe AIR则是一个跨平台的运行环境,使开发者能够构建桌面和移动设备上的富互联网应用(RIA)...

    arcgis flex API开发

    ArcGIS Flex API 是Esri公司提供的一个强大的地图服务开发框架,它允许开发者使用Adobe Flex技术构建交互式、富互联网应用程序(RIA),以展示和操作地理信息。Flex API 提供了丰富的地图绘制、查询、分析和数据可视...

    arcgis api for flex 开发入门(三)地图浏览控件的使用

    arcgis api for flex 开发入门(三)地图浏览控件的使用

    ArcGIS Flex API 2.0 离线参考 - 无JS报错更新版

    ArcGIS Flex API是Esri公司提供的一种接口,它允许开发者在Flex环境中构建交互式的地图应用。此次提供的版本解决了前一版本中存在的JavaScript错误问题,确保了开发者在离线状态下也能顺畅地查阅API文档,减少因报错...

    arcgis api for flex 引用天地图地图

    ArcGIS API for Flex是Esri公司推出的一款基于Adobe Flex技术的地图开发库,它允许开发者在Flex环境中创建动态的、具有地图功能的Web应用程序。要将天地图集成到Flex应用中,我们需要以下几个步骤: 1. **注册与...

    ArcGIS Flex API 中的 Flex 技术-异步特征

    ### ArcGIS Flex API 中的Flex技术—异步特征详解 #### 一、引言 在Web GIS领域,尤其是使用ArcGIS Flex API进行开发时,异步处理能力是至关重要的。Flex技术本身支持异步调用,这使得它非常适合用于创建响应迅速...

    ArcGIS Flex 专题地图制作的代码与说明

    在ArcGIS Flex中,我们可以借助ArcGIS API提供的ChartFeatureServiceLayer类来实现柱状图与地图的结合。你需要提供一个含有统计数据的服务URL,然后ChartFeatureServiceLayer会自动根据字段值生成柱状图。可以自定义...

    基于ArcGIS Flex API实现动态标绘demo_1.1

    这个"基于ArcGIS Flex API实现动态标绘demo_1.1"是针对该API的一个具体应用实例,主要用于在地图上进行动态的图形绘制和编辑。以下是关于这一主题的详细知识: 1. **ArcGIS Flex API**:由Esri公司开发,是...

Global site tag (gtag.js) - Google Analytics