`

openscales1.2 实现加载arcgis 切片

    博客分类:
  • gis
 
阅读更多
package org.openscales.core.layer
{
	import org.openscales.core.Map;
	import org.openscales.core.tile.ImageTile;
	import org.openscales.geometry.basetypes.Bounds;
	import org.openscales.geometry.basetypes.Location;
	import org.openscales.geometry.basetypes.Pixel;
	import org.openscales.geometry.basetypes.Size;

	public class ArcGISCache extends Grid
	{
		public function ArcGISCache(name:String,url:String, layerName:String=""){
			super(name, url);
			this._layerName = layerName;
			//this._tileOrigin= new Location(-400,400);
		}
		private var _serviceVersion:String = "1.0.0";
		
		private var _tileOrigin:Location = null;
		
		private var _format:String = "png";
		
		private var _layerName:String;
		
		/**
		 * A list of all resolutions available on the server.
		 * Only set this property if the map resolutions differs from the server
		 */
		private var _serverResolutions:Array = null;
		

		
		override public function getURL(bounds:Bounds):String {
			var res:Number = this.map.resolution;
			
			var originTileX:Number =(this._tileOrigin.lon +(res * this.tileWidth/2));
			var originTileY:Number =(this._tileOrigin.lat +(res * this.tileHeight/2));
			
			var center:Location =bounds.center ;
			trace("center="+center);
			var x:Number = (Math.round(Math.abs((center.lon - originTileX) / (res * this.tileWidth)))); 
			var y:Number = (Math.round(Math.abs((originTileY - center.lat) / (res * this.tileHeight)))); 
			var z:Number = this.map.zoom;

			var url:String = this.url + "/tile/" + z + "/" + y + "/" + x + "."+this._format;
			return url ;
		}
		
		override public function addTile(bounds:Bounds, position:Pixel):ImageTile {
			return new ImageTile(this, position, bounds, this.getURL(bounds), new Size(this.tileWidth, this.tileHeight));
		}
		
		override public function set map(map:Map):void {
			super.map = map;
			if (! this._tileOrigin) {
				this._tileOrigin = new Location(this.map.maxExtent.left, this.map.maxExtent.bottom);
			}
		}
		
		/**
		 * setter for tile image format
		 * 
		 * @param value:String the tile image extention
		 */
		public function set format(value:String):void {
			if(value.length==0)
				return;
			else if(value.charAt(0)=='.')
				this._format = value.substr(1,value.length-1);
			else
				this._format = value;
		}
		/**
		 * getter for tile image format
		 * 
		 * @return String the tile image format
		 */
		public function get format():String {
			return this._format;
		}
		
		/**
		 * setter and getter of the TMS grid origin
		 */
		public function set origin(value:Location):void {
			this._tileOrigin = value;
		}
		public function get origin():Location {
			return this._tileOrigin.clone();
		}
		/**
		 * setter and getter of the TMS layer name
		 */
		public function set layerName(value:String):void {
			this._layerName = value;
		}
		public function get layerName():String {
			return this._layerName;
		}
	}
}
package org.openscales.fx.layer
{
	import org.openscales.core.layer.ArcGISCache;
	import org.openscales.geometry.basetypes.Location;

	public class FxArcGISCache extends FxGrid
	{
		public function FxArcGISCache()
		{
		
			super();
			if(this._layer == null){
				this ._layer= new ArcGISCache("","");
			}
			
			
		}
		
		public function set format(value:String):void{
			if(this.layer!=null) {
			  (this.layer as ArcGISCache).format= value;
			}
		
		}
		
		public function set origin(value :String):void{
		
			if(this.layer!= null){
				
			   (this.layer as ArcGISCache).origin= Location.getLocationFromString(value);
			
			 }
		 }
		
		
		public function set layerName(value:String):void{
		   if(this.layer!= null){
		   (this.layer as ArcGISCache).layerName =value;
		   }
		}
		
	}
}
<?xml version="1.0"?>
<componentPackage>
	<component id="Map" class="org.openscales.fx.FxMap" />
	<component id="Extent" class="org.openscales.fx.FxExtent" />
	<component id="MaxExtent" class="org.openscales.fx.FxMaxExtent" />
	
	<component id="Style" class="org.openscales.fx.feature.FxStyle" />
	
	<component id="FeatureLayer" class="org.openscales.fx.layer.FxFeatureLayer" />
	<component id="ImageLayer" class="org.openscales.fx.layer.FxImageLayer" />
	<component id="WMS" class="org.openscales.fx.layer.FxWMS" />
	<component id="WMSC" class="org.openscales.fx.layer.FxWMSC" />
	<component id="WFS" class="org.openscales.fx.layer.FxWFS" />
	<component id="KML" class="org.openscales.fx.layer.FxKML" />
	<component id="HTC" class="org.openscales.fx.layer.FxHTC" />
	<component id="TMS" class="org.openscales.fx.layer.FxTMS" />
	<component id="ARC" class="org.openscales.fx.layer.FxArcGISCache" />
	
	<component id="Mapnik" class="org.openscales.fx.layer.osm.FxMapnik" />
	<component id="CycleMap" class="org.openscales.fx.layer.osm.FxCycleMap" />
	<component id="Maplint" class="org.openscales.fx.layer.osm.FxMaplint" />
	<component id="Osmarender" class="org.openscales.fx.layer.osm.FxOsmarender" />
	
	<component id="CorePanZoom" class="org.openscales.fx.control.FxCorePanZoom" />
	<component id="CorePanZoomBar" class="org.openscales.fx.control.FxCorePanZoomBar" />
	
	<component id="BorderPanHandler" class="org.openscales.fx.handler.mouse.FxBorderPanHandler" />
	<component id="ClickHandler" class="org.openscales.fx.handler.mouse.FxClickHandler" />
	<component id="DragHandler" class="org.openscales.fx.handler.mouse.FxDragHandler" />
	<component id="WheelHandler" class="org.openscales.fx.handler.mouse.FxWheelHandler" />
	<component id="WMSGetFeatureInfo" class="org.openscales.fx.handler.mouse.FxWMSGetFeatureInfo" />
	
	<component id="DragFeatureHandler" class="org.openscales.fx.handler.feature.FxDragFeatureHandler" />
	<component id="SelectFeaturesHandler" class="org.openscales.fx.handler.feature.FxSelectFeaturesHandler" />
	
	<component id="LayerManager" class="org.openscales.fx.control.layer.LayerManager" />
  	<component id="MousePosition" class="org.openscales.fx.control.FxMousePosition" />
	<component id="Pan" class="org.openscales.fx.control.Pan" />
	<component id="PanZoom" class="org.openscales.fx.control.PanZoom" />
	<component id="Zoom" class="org.openscales.fx.control.Zoom" />
	<component id="ZoomBox" class="org.openscales.fx.control.ZoomBox" />
	
	<component id="OverviewMap" class="org.openscales.fx.control.FxOverviewMap" />
	<component id="Capabilities" class="org.openscales.fx.control.Capabilities" />
	<component id="FeatureDrawing" class="org.openscales.fx.control.FeatureDrawing"/>
	<component id="FeatureInfo" class="org.openscales.fx.control.FeatureInfo" />
	<component id="YahooSearch" class="org.openscales.fx.control.search.YahooSearch" />
	<component id="TraceInfo" class="org.openscales.fx.control.TraceInfo" />
	<component id="ScaleLine" class="org.openscales.fx.control.FxScaleLine" />
	<component id="Spinner" class="org.openscales.fx.control.FxSpinner" />
	
	<component id="SampleRouting" class="org.openscales.fx.routing.FxSampleRouting" />
	<component id="SampleRoutingControl" class="org.openscales.fx.control.routing.SampleRoutingControl"/>
	
	<component id="ControlPanel" class="org.openscales.fx.ControlPanel"/>
	
	<component id="IGNGeoRMSecurity" class="org.openscales.fx.security.ign.FxIGNGeoRMSecurity"/>
		
	<component id="Control" class="org.openscales.fx.control.Control" />
	<component id="IconButton" class="org.openscales.fx.control.IconButton" />
	
</componentPackage>

 

<?xml version="1.0" encoding="utf-8"?>
<!--- Simple TMS example -->
<s:Group xmlns="http://openscales.org" xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" width="100%" height="100%">
	
	<Map id="fxMap" width="100%" height="100%" zoom="1" center="106,40">
		<ARC name="Arc" url="--------------url ---------"  projection="EPSG:4326"
			 layerName="basic" tileHeight="256" tileWidth="256"  origin="-400,400"
			 resolutions="0.053992133368657984,0.020766205141791533,0.010632297032597264,
			 0.005316148516298632,0.002658074258149316,0.001329037129074658">
			
		</ARC>
		<DragHandler/>
		<WheelHandler/>
		
		<Spinner x="{width / 2}" y="{height / 2}"/>
		<MousePosition x="10" y="{height-20}" displayProjection="EPSG:4326"/>
		
		<TraceInfo x="{width-200}" y="0" />
		
		<PanZoom id="panZoom" x="10" y="10" />
		
	</Map>
	
</s:Group>
分享到:
评论

相关推荐

    使用geoserver发布arcgis切片

    使用geoserver发布arcgis的切片文件,整个流程的相关介绍。

    基于java的ArcGIS切片解析

    ArcGIS切片通常指的是地图服务的预计算图像切片,这些切片存储为紧凑型文件,可以快速加载到Web地图中,提高地图性能。它们是由ArcGIS Server生成的,包含了多个不同分辨率的图像,用于支持不同级别的缩放操作。切片...

    Openlary4加载ArcGIS离线瓦片地图

    本篇文章将详细探讨如何使用OpenLayers 4加载ArcGIS离线瓦片地图。 首先,理解瓦片地图的概念至关重要。瓦片地图是一种将大尺寸地图分割成多个小块(通常为256x256像素的图像),以便快速加载和显示。ArcGIS允许...

    Cesium添加arcgis server 4490 orgin -400 400 地图切片服务

    176512行 -- 将服务切片数据赋值到 tilingScheme._tileInfo = = data.tileInfo 17364行 、17383行 -- 根据切片数据,计算不同比例尺,瓦片行列总数 176917行 -- 增加判断,根据orgin -400 与 cesium默认的-180 进行...

    Java读取ArcGIS切片包数据

    本文将详细讲解如何使用Java来读取ArcGIS的切片包(.tpk)数据,这是一种高效的数据存储方式,常用于地图渲染和离线地图应用。 ArcGIS切片包(Tile Package)是Esri公司的产品,它包含了一系列预渲染的地图切片,以...

    GeoWebCache发布ArcGIS切片

    ### GeoWebCache发布...通过以上步骤,可以成功地使用GeoWebCache发布ArcGIS切片,并实现高效的地图服务提供。这不仅能够提升用户体验,还能有效降低服务器资源消耗,是GIS开发和运维过程中不可或缺的技术手段之一。

    openlayers加载arcgis发布的OGC WMS服务

    OpenLayers 是一个流行...总之,通过OpenLayers加载ArcGIS发布的OGC WMS服务,可以让非ArcGIS用户利用丰富的ArcGIS地图数据,实现跨平台的地图应用。理解这些概念和实践操作,对于构建基于Web的地理信息系统至关重要。

    arcgis 切片转换为谷歌地图切换程序

    可以批量把arcmap下载到的瓦片地图转换成谷歌地图瓦片,支持谷歌API的调用,arcmap瓦片下载参考...

    ArcgisPro加载arcgis卫星

    本文将详细解析如何在ArcGIS Pro中加载arcgis卫星图像,以及与ArcGIS图层文件的区别。 首先,让我们了解什么是“arcgis卫星”。“arcgis卫星”通常指的是Esri提供的World Imagery服务,这是一个全球覆盖的高分辨率...

    Java解析ArcGIS切片包(更新版)

    切片包是ArcGIS的一种数据存储格式,它包含了预渲染的地图切片、元数据和相关的地理信息,便于离线使用或快速加载地图服务。 首先,我们需要了解ArcGIS切片包的结构。一个标准的TPK通常包含以下几个部分: 1. **...

    openlayer4 加载arcgis rest 服务(遥感影像)

    openlayer4 加载arcgis rest 服务(遥感影像)。本文件适用于离线环境和有网络的在线环境。包括离线open layer,ol.css和ol.js文件和代码。代码很简单,老铁替换服务地址就可以使用代码。关键是质量保证,项目验证。...

    谷歌Arcgis切片地图

    在离线地图切片的过程中,ArcGIS首先会将整个地图数据进行投影转换和分块,然后对每个分块进行渲染和压缩,生成一系列的图片文件,这些文件通常命名为如“x_y_z.png”的格式,其中x、y、z分别代表经度、纬度和缩放...

    GeoWebCache发布ArcGIS切片方法+GeoWebCache

    切片是用水经注软件下载的切片你可以自己下载,文档里面只有部署GeoWebCache发布本地图片的方法

    基于ArcGIS API for JavaScript加载百度各种类型切片地图

    2. 地图切片加载:BaiduLayer会根据地图的缩放级别和中心点,动态请求百度地图的切片图片,并将其叠加到ArcGIS地图上。 3. 事件处理:BaiduLayer可以监听地图的移动、缩放等事件,以同步更新百度地图的视图状态。 4....

    ArcGIS Server切片方案

    ArcGIS Server的切片方案是地理信息系统(GIS)领域中一种高效的数据分发和展示技术,它允许用户快速访问和加载地图数据,特别是对于大规模、高分辨率的地图数据,切片技术能显著提高地图加载速度和用户体验。ArcGIS...

    ArcGIS和ArcGIS Pro快速加载ArcGIS历史影像World Imagery Wayback

    加载服务后,时间滑块会出现在地图上方,你可以通过滑动选择不同的时间切片,查看不同年代的影像。 2. **图层透明度**:调整World Imagery Wayback图层的透明度,可以对比不同时期的影像,观察地表变化。 3. **...

    arcgis for js 加载本地离线瓦片数据

    《加载本地离线瓦片数据在ArcGIS for JavaScript中的实现》 在GIS应用开发中,尤其是在没有网络连接或者网络环境不稳定的情况下,加载本地离线瓦片数据显得尤为重要。ArcGIS for JavaScript API提供了一种有效的...

    arcgis切片服务.docx

    这些切片通常以小块的图片形式存在,用户可以根据需要加载特定范围的地图,提高地图加载速度和用户体验。 以下是详细步骤来创建和发布ArcGIS地图切片服务: 1. **添加地图数据**:首先,你需要将要切片的影像或...

    arcgis_切片的制作

    ArcGIS ,切片的制作, 如何在ArcGIS里进行切片的制作

    shape解析并加载arcgis 地图中

    本地上传shape 压缩包,前端解析并加载至arcgis中,下载下来直接可以跑,具体的项目详情可以移步博客观看:https://blog.csdn.net/KK_bluebule/article/details/118997455

Global site tag (gtag.js) - Google Analytics