物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 700|回复: 0

用TCP Server给Global Mapper提供图块数据

[复制链接]
发表于 2013-3-10 16:24:51 | 显示全部楼层 |阅读模式
illustr.jpg
Global Mapper V12之后就可以添加数据源,但是这个功能过于简单。。。
该方案的原理很简单,编程制作一个简单的TCP Server,接收GM的请求,翻译后转发出去,获得数据后再发回GM。
GM请求很简单,如下:
GET /12/3290/1579.jpg HTTP/1.1
User-Agent: app_name
Host: XXXXXX
Connection: Keep-Alive
Cache-Control: no-cache
“/12/3290/1579” 这部分就是图块地址,具体格式是/Zoom/X/Y。提取这部分后,就可以按需要自由构造更复杂的URL,比如计算经纬度、算四叉树编码(quadkey)。
图块服务一般都使用多个服务器来平衡访问量,在生成URL时,可以模拟这种方式。
此外,对图块服务器的请求有必要加上报头,可以用Fiddler或是HTTPWatch之类的工具观察通过浏览器使用地图时的请求报头。
GM发请求是同步模式,若请求失败会重发,成功收到数据或是重发失败5次,才会发出下一个新请求。服务器下载到图块后,用字节流的方式把图块数据发给GM。
GM图块请求的顺序是依次Y+1,填满区域宽度后X+1,就像打字,打满一行后换行。插图中的程序“预测”后两个图块地址,异步下载,一次发出三个请求,把预先下载的图块存档,GM发出请求时,从本地文件读出数据发给GM,这样虽然会多下几个图块,但提高了一些效率。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-5-4 06:10 , Processed in 0.152522 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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