MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位

【C友贴图区】

C友贴图和看图,请到此版
勿发违规图片

【C友开心吧】

C友交流开心笑话的区域
乐一乐,就在开心吧

【心情咖啡屋】

分享你的心情和通信生活
C友交流心情的地方

【求职招聘区】

招聘,求职,职业交流
讨论通信人的职场前景



  • 阅读:10241
  • 回复:0
[经验] 离线谷歌卫星地图加载服务中间件调用示例 For OpenLayers
诺一小宝贝
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 140
帖子 28
威望 12003 个
礼品券 0 个
专家指数 0
注册 2015-11-5
专业方向  工程测量
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2015-12-27 15:14:03  只看楼主 
1.说明
水经注离线谷歌卫星地图加载服务中间件可利用离线地图的.dat文件在本地建立服务端,并生成影像、标签、高程等服务地址,可以在Openlayers中直接调用该服务地址,并将请求到的服务资源显示在前端,当请求的地图资源不存在可通过网络直接下载缺失的地图,并储存在.dat文件中。

百度网盘下载:http://pan.baidu.com/s/1qWve49m
详情请咨询水经注QQ群 329081749


2.实现

2.1 OpenLayers配置



在examples文件夹中新建名为OpenlayersMapSevice的html文件,在html文件中写入如下代码:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var lon = 0;
var lat = 20;
var zoom = 1;
var map, layer;
function init(){
map = new OpenLayers.Map("map", {
maxExtent: new OpenLayers.Bounds(-180,-90,180,90),
numZoomLevels:18,

maxResolution:0.3515625,

units:'degree',

projection: "EPSG:4326",
displayProjection: new OpenLayers.Projection("EPSG:4326")
});
layer = new OpenLayers.Layer.TMS("Name", "../data/",{'type':'jpg', 'getURL':get_my_url });
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(lon, lat).transform(map.displayProjection, map.getProjectionObject()), zoom);
}
function get_my_url (bounds) {
var res = this.map.getResolution();
var x = Math.round ((bounds.left + 180) / (res * this.tileSize.w)) + 1;
var y = Math.round ((90 - bounds.top) / (res * this.tileSize.h)) + 1;
var z = this.map.getZoom() + 2;
var path = 'http://127.0.0.1:1002/getDefinedImage?x=' + x + '&y=' + y + '&z=' + z;
returnpath;
}
function tlen(len, mystr){
mystr = String(mystr);
var num = len - mystr.length;

for (var i = 0; i <= num; i++)
{
mystr ="0" + mystr;
}
return mystr;
}
</script>
<style type="text/css">
.smallmap {
width: 100%;
height: 800px;
border: 1px solid #ccc;
}
</style>
</head>
<body >
<center>
<h1 id="title">Tiled Map Service Example</h1>



<div id="map" class="smallmap"></div>


</center>

</body>

</html>
其中【strURL=”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.运行结果
在浏览器中打开OpenlayersMapSevice.html,调用的服务将显示在前端。




附录:
启动参数说明

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

地图服务启动日志输出

[attach]323264[/attach]

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

[ 本帖最后由 诺一小宝贝 于 2015-12-27 15:15 编辑 ]
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 2、回复“ZGDX”免费领取《中国电信5G NTN技术白皮书
  • 3、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 4、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 5、回复“5GX3”免费领取《 R16 23501-g60 5G的系统架构1
  • 6、回复“iot6”免费领取《【8月30号登载】物联网创新技术与产业应用蓝皮书——物联网感知技术及系统应用
  • 7、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 8、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 对本帖内容的看法? 我要点评

     
    [充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
    充值拥有大量的威望和最高的下载权限,下载站内资料无忧

    快速回复主题    
    标题 [经验] 离线谷歌卫星地图加载服务中间件调用示例 For OpenLayers" tabindex="1">
    内容
     上传资料请点左侧【添加附件】

    当前时区 GMT+8, 现在时间是 2024-04-26 07:17:45
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 0.277959 second(s), 13 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver