设为首页收藏本站--- 驰名中外的国际土木工程技术交流平台!

东南西北人

 找回密码
 注册

QQ登录

只需一步,快速开始

总共8796条微博

动态微博

AUD$1=500 Gold Coin
本站帖子精华之精华汇总 Best of the Best英语口语、听力、翻译、考试学习经验交流与探讨1000多土木工程类行业软件、计算表格和计算工具免费下载东南西北人网站QQ精英群 QQ189615688
中国土木工程师手册(上中下)东南西北人英文资料走马观花500多专业手册、工程手册100多个专业词典大汇总如何获取积分和金币?
精彩施工和土木工程技术视频东南西北人英汉对照资料汇总支付宝充值各版块精彩讨论贴汇总!银行汇款充值
查看: 834|回复: 2

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

[复制链接]
鲜花(0) 鸡蛋(0)
K8MWW 发表于 2015-12-23 11:13:10 | 显示全部楼层 |阅读模式
本帖最后由 三T上人 于 2016-7-22 20:01 编辑 <br /><br />1.说明
水经注离线谷歌卫星地图加载服务中间件可利用离线地图的.dat文件在本地建立服务端,并生成影像、标签、高程等服务地址,可以在Flex中直接调用该服务地址,并将请求到的服务资源显示在前端,当请求的地图资源不存在可通过网络直接下载缺失的地图,并储存在.dat文件中。
详情请咨询水经注QQ群 329081749

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;
//扩展水经注地图
public class RiverMapLayer extends TiledMapServiceLayer
{
private var _tileInfo:TileInfo = new TileInfo();  
private var _baseURL:String="";  
public function RiverMapLayer()
{
super();
buildTileInfo();  
setLoaded(true);  
}
{
}
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);
}  
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.2.1 直接运行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)

输出地图底图(影像、地图、地形任意一种)

输出标签

输出高程

删除地图地图(影像、地图、地形任意一种)
地图服务启动日志输出

中间件.jpg
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 标签瓦片超出工程文件覆盖范围

SOSO.CC
鲜花(15) 鸡蛋(0)
xxm564 发表于 2015-12-23 18:17:15 | 显示全部楼层
本帖最后由 三T上人 于 2016-7-22 20:01 编辑 <br /><br />看看,了解一下~~

SOSO.CC
鲜花(48) 鸡蛋(0)
zspkd 发表于 2016-9-9 11:19:47 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|QQ即时充值|站点统计|手机版|小黑屋|百宝箱|留言|咨询|微信订阅|QQ189615688|东南西北人

GMT+8, 2017-9-21 05:55 , Processed in 0.196903 second(s), 42 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表