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

2016/7/21 15:12:19 0人评论 1217 次 分类:技术文章
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 标签瓦片超出工程文件覆盖范围
分享到:

相关资讯

  • 如何使用水经注万能地图下载器制作百度个性化地图-道路篇

    1. 概述水经注软件除了可以轻松下载无水印Google Earth卫星影像、有明确拍摄日期的历史影像、地方高清天地图、百度高德大字体打印地图,按1万/5千等国家标准图幅下载,对百度坐标与火星坐标进行纠偏;下载陆地及海洋高程、STRM高程、提取10米等高线等深线、CASS高程点之外,还…

    2019/12/23 16:31:58
  • 如何自定义分块导出大图

    当地图范围太大且级别太高时,导出拼接为单张大图后普通看图软件无法打开查看,即便是像ArcGIS或GlobalMapper等专业软件打开也非常困难。为了解决这一问题,本软提供了将大图自定义分块导出的功能。这里我们以成都市行政区划为例,说明如何自定分块导出大图。在视图中点击“下…

    2019/10/24 16:50:47
  • 如何在微图APP内查看三维地球

    说起三维地球,有了解的朋友都会第一时间想起 Google Earth,Google Earth 为用户提供了非常详细和绚丽的三维地球场景,但是Google Earth在国内能正常访问的是PC版,手机版无法查看。为了解决这一问题,水经注微图APP在上线不久之后便推出了三维地球的功能,方便用户查看三维地…

    2019/4/8 10:00:18
  • 青海省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述  青海,简称青,省会西宁,位于中国西部,雄踞世界屋脊青藏高原的东北部,是中国青藏高原上的重要省份之一。青海省东西长约1200公里,南北宽800公里,面积为72.10万平方公里。境内山脉高耸,地形多样,河流纵横,湖泊棋布。昆仑山横贯中部,唐古拉山峙立于南,祁连…

    2018/8/23 16:18:41

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