离线谷歌卫星地图加载服务中间件调用示例 For Flex

2016-7-21 15:12:19 0人评论 507次浏览 分类:技术文章

1.说明
水经离线谷歌卫星地图加载服务中间件可利用离线地图的.dat文件在本地建立服务端,并生成影像、标签、高程等服务地址,可以在Flex中直接调用该服务地址,并将请求到的服务资源显示在前端,当请求的地图资源不存在可通过网络直接下载缺失的地图,并储存在.dat文件中。
百度网盘下载:http://pan.baidu.com/s/1eQoDr4u

2.实现
2.1创建Flex示例
新建Flex项目“RiverMapServerSample For Flex”,并添加“agslib”,如下图。

添加一个web墨卡托投影的瓦片服务图层“RiverMapLayer”,部分源码如下图。
package com.esri.ags.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 RiverMapLayer extends TiledMapServiceLayer
{
private var _tileInfo:TileInfo = new TileInfo();  
private var _baseURL:String="";  
public function RiverMapLayer()
{
super();
buildTileInfo();  
setLoaded(true);  
}
public function set baseURL(baseurl:String):void
{
_baseURL = baseurl;
}
override public function get fullExtent():Extent  
{  
return new Extent(-18935696.6943223, -20037508.342787,18935696.6943223, 20037508.342787, new SpatialReference(102113));  
}
override public function get initialExtent():Extent
{  
return new Extent(-18935696.6943223, -20037508.342787, 18935696.6943223, 20037508.342787, new SpatialReference(102113)); 
}  
override public function get spatialReference():SpatialReference  
{  
return new SpatialReference(102113);
}  
override public function get tileInfo():TileInfo  
{  
return _tileInfo;  
}  

//获取地图  
override protected function getTileURL(level:Number, row:Number, col:Number):URLRequest  
{  
var a:String= (col+1).toString(10); 
var b:String=(row+1).toString(10); 
var c:String= (level+1).toString(10);
var url:String=_baseURL +  "x=" + a + "&" +  "y=" + b + "&" + "z=" + c;
return new URLRequest(url);   
}  
private function buildTileInfo():void  
{  
_tileInfo.height=256;  
_tileInfo.width=256;  

_tileInfo.origin=new MapPoint(-18935696.6943223, 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)
];
}  
}
}
在主界面“RiverMapServerSampleForFlex.mxml”中添加esri的map标签,并引用刚刚新建的“RiverMapLayer”,如下图所示。

其中【baseURL=”http://localhost:1002/getDefinedImage?”】表示请求的是影像、地图、地形、标签、影像+标签、影像+地图、影像+地形或Dem。具体根据RiverMapServer的启动配置参数来确定。
例如:RiverMapServer.exe “1002” “Image_Label” “c:\test\tile” “c:\test\label”表示此应用输出合并底图(可以为影像、地图、地形任意一种)和标签两个地图瓦片。RiverMapServer.exe “1002” “Image” “c:\test\tile”  表示此应用输出地图底图(可以为影像、地图、地形任意一种) 
2.2启动RiverMapServer
启动RiverMapServer有两种方式都可以正常运行。
2.1.2 直接运行RiverMapServer
通过config.ini文件配置参数,如下图。


PORT=1002  表示端口为1002;GetFileType=Image_Label表示此应用输出合并底图(可以为影像、地图、地形任意一种)和标签两个地图瓦片,后面必须跟两个瓦片工程文件目录;TileDir=..\dat\tile表示影像数据路径;LabelDir=..\dat\label 表示标签数据路径;DemDir=..\dat\dem 表示高程数据路径。
RiverMapServer启动窗口,如下图。



2.2.2通过cmd.exe输入启动参数运行
新建一个bat文件,设置配置参数,如下图。


双击.bat启动服 务。运行效果和直接运行RiverMapServer效果一致。


3.运行结果
运行RiverMapServerSample For Flex效果,如下图。


附录:
启动参数说明
1.瓦片文件类型:Image_Lable 表示此应用输出合并底图(可以为影像、地图、地形任意一种)和标签两个地图瓦片,后面必须跟两个瓦片工程文件目录
例子:RiverMapServer.exe “1002” “Image_Label” “c:\test\tile” “c:\test\label”

2.瓦片文件类型:Image 表示此应用输出地图底图(可以为影像、地图、地形任意一种) 
后面必须只需一个瓦片工程文件目录
例子:RiverMapServer.exe “1002” “Image” “c:\test\tile” 

3.瓦片文件类型:Label表示此应用输出地图标签 后面必须只需一个瓦片工程文件目录
例子:RiverMapServer.exe “1002” “Label” “c:\test\label” 

4.(待)瓦片文件类型:dem表示此应用输出地图位置高程 后面必须只需一个地图位置高程工程文件目录
例子:RiverMapServer.exe “1002” “dem” “c:\test\dem”
输入参数大小写不敏感,启动时需检查瓦片文件类型与工程文件是否匹配

请求接口说明
根据启动参数输出相应类型图片(影像、地图、地形、标签、影像+标签、影像+地图、影像+地形、Dem)
http://localhost:1002/getDefinedImage?x=1&y=1&z=1
输出地图底图(影像、地图、地形任意一种)
http://localhost:1002/getTileImage?x=1&y=1&z=1
输出标签
http://localhost:1002/getLabelImage?x=1&y=1&z=1
输出高程
http://localhost:1002/getDemImage?x=1&y=1&z=1
删除地图地图(影像、地图、地形任意一种)
http://localhost:1002/delTileImage?x=1&y=1&z=1

地图服务启动日志输出
1.服务启动时需要检测输入参数的数据是否正确:
@@INPUT:OK 输入参数正确
@@INPUT:PortError 端口错误
@@INPUT:TypeError 瓦片类型错误
@@INPUT:DataFileError:瓦片工程文件 瓦片工程文件错误

2 .服务正常启动与运行输出:
 @@RUN:WAITING 正常启动后和服务空闲时每分钟输出
@@RUN:Exception:异常消息(不能有回车换上等控制字符)服务启动异常后输出

服务正常启动后建立与瓦片工程文件数据源的连接
@@DSCOK:瓦片工程文件 连接正常
@@DSCFAIL:瓦片工程文件 连接失败
@@PORT:端口

3 .瓦片输出
@@TileOK:X=1&y=1&z=1 底图瓦片下载成功(已下载正常输出瓦片不输出日志)
@@LabelOK:X=1&y=1&z=1 标签瓦片下载成功(已下载正常输出瓦片不输出日志)
@@TileNoExists:X=1&y=1&z=1 底图瓦片不存在
@@LabelNoExists:X=1&y=1&z=1 标签瓦片不存在
@@TileOverRange:X=1&y=1&z=1 底图瓦片超出工程文件覆盖范围
@@LabelOverRange:X=1&y=1&z=1 标签瓦片超出工程文件覆盖范围

附件下载

相关资讯

  • 宁夏省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述  宁夏,全称宁夏回族自治区,简称“宁”。首府银川市,成立于1958年10月25日 [1] ,是中国五大少数民族自治区之一。  宁夏回族自治区得黄河水灌溉而形成了悠久的黄河文明。 早在三万年前,宁夏就已有了人类生息的痕迹。公元1038年,党项族的首领李元昊在此建立…

    2018-8-10 16:41:59
  • 辽宁省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述辽宁,中华人民共和国省级行政区,简称“辽”,辽宁省南临黄海、渤海,东与朝鲜一江之隔,与日本、韩国隔海相望,是东北地区唯一的既沿海又沿边、中国最北端的沿海省份,也是东北地区及内蒙古自治区东部地区对外开放的门户。辽宁省是中国重要的重工业基地、教育强省、…

    2018-7-25 17:18:09
  • 江西省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述  江西,中国省级行政区,简称“赣”(gn),又称江右、别称赣鄱大地,省会是南昌。因公元733年唐玄宗设江南西道而得省名,又因古为干越之地和省内最大河流为赣江而简称赣。  夏商时期,江西境内有邗越(干越)、百濮,《荀子劝学篇》注:“邗越古国名”。已进入青…

    2018-7-24 16:25:25
  • 江苏省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述江苏,简称“苏”,是中国省级行政区,省会南京,以“江宁府”与“苏州府”之首字得名。地处长江经济带,位于中国大陆东部沿海中心、长江下游,东濒黄海,东南与浙江和上海毗邻,西接安徽,北接山东,地跨长江、淮河,京杭大运河从中穿过。江苏是中国古代文明、远古人…

    2018-7-3 16:16:17

共有访客发表了评论 网友评论

验证码: 看不清楚?
    我们的客户
    卫星地图下载