Rover's Official Blog

Map/GPS/GIS/WebMap

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  47 随笔 :: 0 文章 :: 437 评论 :: 41 引用

以前写了篇MapBar的JS研究,其实个人感觉MapBar的JS还是蛮成熟的,对象模型,也是非常多的对象方法,如果能够开放JS,也说不定不比灵图差。只是放出来这么久都没有人告诉他们的研究的东西。是没有去研究还是不愿意讲?我看了下下载,也有2000多次了,唉。
回到题目,这篇是想和大家探讨地图切割的方法的。因为个人说了,Mapbar的JS还是很成熟的,所以我就直接用Mapbar的JS了,谁叫我不懂JS呢,悲哀。但地图如何替换为你自己的?这里就是要谈的切割方法。
因为一般的地图为MAPINFO的格式,所以不是用MAPBASIC就是用MAPX来批量输出图片。那么如何输出图片呢?考虑的重点:投影。1。MAPBAR到底是采用了什么投影?投影我不清楚,也一直还没有搞明白,只是感觉MAPBAR不是用的WGS84。那么我根据300象素的长宽和实际地图经度和纬度差是否可以算出投影呢?2。MAPBAR中的1度大概为100KM,和真实的111KM是否有影响,如果影响是否和投影又有关系。
自己做了个样例,用的是上海市样图数据,大概作出了点效果,作了四级,13、12、11和10,只是这个精度上好像问题比较大。特别是12和11跨越的时候偏移太大,这个可能是我处理时存在错误。个人做法:用MAPBASIC做了点方块框,然后用MAPX根据框批量输出图片,只是这里的算法总觉得有问题。

先放样例上来,下载地址:http://files.cnblogs.com/Tangf/MapBar_My.rar
使用方法:下载后直接解压到IIS或者APACHE的主目录即可。
注意本样例已经完全在本地运行,没有连接任何外部网络。

posted on 2006-05-28 18:21 Rover.Tang 阅读(4704) 评论(50)  编辑 收藏 网摘 所属分类: GIS

评论

看你做的了,效果还行。
  回复  引用    

#2楼 [楼主] 2006-05-29 21:01 浪人|努力      
@dean@mapbar
HOHO,谢谢你的评价,那可以告诉我投影吗?
哈,当然是不可能的。
有时间一定要把你们的东西研究出来,呵呵。
  回复  引用  查看    

@浪人|努力
研究就研究吧。兄弟别把版权给改了啊。想着把rover 给改回去再发布。
  回复  引用    

#4楼 [楼主] 2006-05-30 20:20 浪人|努力      
@dean@mapbar
OK,下次一定注意这个问题,我只是觉得比较好玩,所以就随便改改,不好意思,下次发布一定改回去。
  回复  引用  查看    

#5楼  2006-05-31 14:30 maxmore [未注册用户]
上次你提出的用mapbasic切割的办法,那个程序好象运行不了,提示出现错误,请问怎么回事?
  回复  引用    

#6楼 [楼主] 2006-05-31 21:15 浪人|努力      
@maxmore
这个MAPBASIC是人家发在论坛上的,是处理GOOGLE地图的。我复制后运行是不可以的,但在错误的地方改动一下就可以了。只是不知道效果如何,我自己的效果不好。
  回复  引用  查看    

#7楼  2006-06-01 10:02 maxmore [未注册用户]
另外象这种图片型的地图,怎么实现搜索功能的,是不是后台有一套对应各数据点坐标的数据库?那最优路径,他又是怎么算出来的?象在传统GIS里实现的图层控制,专题图等,在这种类型的地图里不知道该如何实现。
  回复  引用    

#8楼  2006-06-01 10:03 maxmore [未注册用户]
@浪人|努力
可不可以把你修改后的代码发上来?
  回复  引用    

#9楼 [楼主] 2006-06-01 18:44 浪人|努力      
@maxmore
另外象这种图片型的地图,怎么实现搜索功能的,是不是后台有一套对应各数据点坐标的数据库?
后台数据库肯定是有坐标的,读取以后经过转换到地图,所以说这里的投影很重要,不然坐标肯定是对不上地图的。
象在传统GIS里实现的图层控制,专题图等,在这种类型的地图里不知道该如何实现。
专题图还没有见过,但其实象那些企业连锁标注就算专题图的一种。至于图层管理,可以看看城市猎人就知道了,有道路层、名称层等可以叠加。可能是在地图上面叠加了透明的PNG(PNG是可以透明的吧?)图吧。
可不可以把你修改后的代码发上来?
其实也很简单,上面提示错误的地方肯定错误的改掉就可以了,提示一处改一处。我看了觉得和我想的效果不一样,所以也就没有继续看这个东西。
  回复  引用  查看    

#10楼  2006-06-02 09:39 maxmore [未注册用户]
标尺的计算是不是通过实际投影和切割的大小来计算出来的?左小角的比例尺也是这么算的吧。

仔细看了看百度的搜索,很多存在的点他都搜索不到,我估计是将能搜索的点的坐标放进了数据库里。你的那个加点的坐标值和实际的值是怎么对应的呢?

这两天准备写一个小程序,看能不能把mapbar的地图全部下载下来。不知道mapbar会不会察觉?

另外用mapx切割地图的时候,投影是个问题,还有那些数据也需要转换出来。正在写代码,看能不能实现。
  回复  引用    

#11楼 [楼主] 2006-06-02 21:29 浪人|努力      
@maxmore
比例尺和距离的量算都是以1度为100KM来计算的,所以测量距离很不准,但对于全国图这样的图取个大概还是应该足够了。比例尺我以前写过篇文章的。

至于搜索不到,原因是四维的图的POI是经过采集确认的,POI的数量精确但相对较少,所以最后放到数据库的就肯定很少。至于我加的点的坐标,Mapbar是经过一定的加密变成一个大概11个大写字母组成的字符串,但在地图显示的时候其他他的JS里还是把这个加密后的坐标进行解密的。我采用的是加密后的字符串。

MAPBAR的地图肯定是可以下载下来的,MAPBAR也肯定是会察觉的,其实我以前就下过,下了好几个比例尺下的一个城市的地图图片,当然这里也是写了个小程序批量下载而已。只是这样的图片你是没有版权的,你是不能拿出来利用的。

至于MAPX切割地图,我用的就是这样的方法,除了地图切割需要转换的数据有:POI的名称坐标提取到数据库,如果做道路那就更复杂些。应该可以实现,上次有个朋友说自己切割的地图可以用的。
  回复  引用  查看    

#12楼  2006-06-06 22:19 maxmore [未注册用户]
这几天研究了一下你所说的坐标加密和解密,但对js还是不是很明白,看得头晕脑涨的,可不可以将加密解密的详细方法告诉给我?

另外,一个朋友正在写一个切割mapinfo地图格式地图的程序,将能将数据(这部分很重要)存储进sql Server数据库中,如果成功,将代码奉上,并请多指点。
  回复  引用    

#13楼 [楼主] 2006-06-06 23:12 浪人|努力      
@maxmore
加密和解密的方法我已经另发一篇来说明了。

切割地图不难,难的是你按照Mapbar的要求来切割了吗?你如何保证那么长宽经纬度范围一定是300*300象素呢?呵呵,个人还是不解,所以一直想知道他们的投影。也许我考虑的方向也不一定对。我希望的是输出的图片是不经过拉伸的,自然的300象素,如果拉伸了就不一定对。
至于数据存入数据库不难,用MAPBARSIC写一两句代码把坐标保存到MAPINFO的字段,另存MAPINFO表为MDB,再把MDB导入SQL不就解决问题了?
保存的坐标应该是点坐标,是那些可以查到的感兴趣的点的坐标,如饭店商场等。当然也可以保存线坐标,这样你考虑深入的话可以实现他们的驾车路线功能等,呵呵。
  回复  引用  查看    

#14楼  2006-06-08 06:08 maxmore [未注册用户]
一语惊醒梦中人,果然我的投影和mapbar的差别很大。晕啊。

存入点的信息很简单,但线和面的坐标怎么存的?难道用多点来组成?

唉,看来GIS方面还是门外汉。
  回复  引用    

#15楼 [楼主] 2006-06-08 18:19 浪人|努力      
@maxmore
线面本来就应该算多点组成,所以存入的肯定是点,只是组织不同。所以一直不明白ARCSDE里的数据的组织。可以看看ARCSDE的数据组织。
  回复  引用  查看    

.

首先感谢,tangf对图为先的关注。
同时对你所提的:

“只是放出来这么久都没有人告诉他们的研究的东西。是没有去研究还是不愿意讲?”

不明白是什么意思,还请赐教!
.
  回复  引用    

#17楼 [楼主] 2006-06-13 18:28 浪人|努力      
@地图生活每一天!
没有什么意思的。觉得既然我扔了这些代码放在这里给大家下载,大家下载的也不少。就是我想知道下载后有研究的人多少?即使研究了又共享了多少而已。
  回复  引用  查看    

#18楼  2006-06-14 12:54 vrgis [未注册用户]
请问,那么我把POI的坐标存入数据,也肯定是存放的地理坐标,怎样才知道把这个POI信息点放在图片什么地方呢?
  回复  引用    

#19楼 [楼主] 2006-06-14 19:09 浪人|努力      
@vrgis
不太理解您的意思。不过我想意思是这样,对一个POI而言,如何对应到地图上。这里首先指出这个POI不是固定在图片上的poi。那么用ADDPOINT和SETCENTER方法应该就可以了。就是添加一个点,然后把他设置为中心就OK了。至于如何算法,代码里有,只是和地图对应不仅仅是代码的问题,还有就是这篇里面说的地图切割方法问题。
  回复  引用  查看    

@浪人|努力

一个mapinfo的地图,怎么切割成图片了呢?
是用 mapbasic ?? 一点经验,和头绪都没有,还请哥哥给分析下思路。你们讲的东西我都不太明白?!郁闷。谢谢哥哥了。
  回复  引用    

@浪人|努力
感觉都没有讨论到如何切割。呵呵。是不是有点
跑题了?
  回复  引用    

#22楼 [楼主] 2006-06-20 18:20 浪人|努力      
@郁闷的虫子
题目说的是寻找。
而且我说了输出图片,用MAPBASIC或者MAPX。
再具体到什么函数自己看帮助文档找。
我觉得思路说的还是蛮清楚了,该说的都说到了。
重要的是投影如何解决,那下一步问题就很简单。
  回复  引用  查看    

@浪人|努力
呵不好意思。我在仔细想想吧,呵,一门外汉,见笑了。
  回复  引用    

@浪人|努力
浪人大哥。小弟研究了一个星期,在网上看资料无数,还是没有研究出来到底应该怎么切割地图。怎么弄呢?您的那个例子是怎么切的呢。呵 小弟愚钝,希望浪人哥哥,给点好的例子。或者做法,真的,不能在这样闭门造车了。兄弟真的求求你了,太没有思路了,谢谢你。辛苦你了。
  回复  引用    


@浪人|努力
MapInfo中按区域分割地图的方法(带MapBasic方法)
我正在看您的这篇文章写的不错,估计能有点启发吧呵 。您肯定挺忙的。打扰了。希望你多多指点。小弟初来乍道的。
呵呵。
  回复  引用    

@浪人|努力
看得还是不太明白。有点半透半不透的感觉。呵呵。希望您能指点指点啊。
  回复  引用    

#27楼  2006-06-28 15:44 vrgis [未注册用户]
@浪人|努力
说的很好,我就是那个意思,不过你能否介绍一下算法,算法的思路等,
还有,你的那个带mapbasic的mapinfo分割不在了呢
那段mapbasic能否共享一些
  回复  引用    

#28楼 [楼主] 2006-06-28 21:19 浪人|努力      
@vrgis
思路和算法我觉得都说了,连我不想说的都说了。你可以看看我说的个人方法。当热,你也可以用其它办法实现。
你说的MAPBASIC是指哪个?你说我做的还是MAPINFO论坛的?
mapinfo论坛的切割Google地图的代码在这里,还是没有删除,具体见:http://www.mapinfo.com/registration/discussions/thread.jsp?forum=3&thread=10391&tstart=30&trange=15
  回复  引用  查看    

#29楼  2006-06-29 16:08 maxmroe [未注册用户]
我的切割也有问题,实现错误。看不懂mapbasic的代码。
  回复  引用    

#30楼  2006-07-05 11:28 网络者 [未注册用户]
太好了 我现在就是要这方面的实例 太多谢搂主了
  回复  引用    

有没有for java的分割代码? 呵呵

  回复  引用    

#32楼 [楼主] 2006-07-10 18:25 浪人|努力      
@伊豆酷水
for java的应该是基于矢量的,不需要分割。即使分割,分割的大小等也不是很重要。
  回复  引用  查看    

#33楼  2006-07-12 15:10 jackinsea      
太谢谢你了,
我最近也想研究一下这方面东西。
不过你的代码好多变量名和函数名看不明白,能改过来吗?
谢谢!,我的邮箱:jackinsea@sohu.com
  回复  引用  查看    

@浪人|努力
能否将你的例子的切割程序共享下呢?
  回复  引用    

#35楼  2006-08-21 11:42 simple8 [未注册用户]
用你介绍的报错:
(pngsave.mb:374) Unrecognized command: .
(pngsave.mb:374) Warning: No end quote on string constant.
(pngsave.mb:375) Variable preserveAspectRatio not defined.
(pngsave.mb:375) Warning: No end quote on string constant.
(pngsave.mb:479) Variable cx not defined. Warning: No end quote on string constant.
(pngsave.mb:503) Variable x1 not defined. Warning: No end quote on string constant.
(pngsave.mb:573) Variable x not defined. Warning: No end quote on string constant.
(pngsave.mb:602) Warning: No end quote on string constant.

  回复  引用    

请问各位高手栅格图如何切割啊~
  回复  引用    

#37楼  2006-10-23 12:46 zhangmap [未注册用户]
主要是地图投影的关系,我研究了一下切割Google地图的代码,很不错,只是在y轴方向接边处变形了,有没有好的解决方案呀
  回复  引用    

年初这个东西研究了好久,终于完成,要考虑的东西很多的.支持多种坐标系,栅格矢量地图,需要的联系吧,哈哈,当然要有一定的报酬的.
  回复  引用    

QQ35350428
现在就是那个js文件原理还不是明白,要是有一个技术文档就好了

那位可以提供研究的心得
  回复  引用    

@wangxuhua.2005@yahoo.com.cn
给你发了邮件,有意这个程序,快点回个信啊。
  回复  引用    

#41楼  2007-03-07 09:29 路人甲 [未注册用户]
怎样拼接MapBar的地图图片阿
  回复  引用    

#42楼  2007-03-14 18:18 cgboy88 [未注册用户]
是否可以共享一下你的MapBasic程序?在Mapinfo网站上没有找到

我的邮箱是cgboy88@163.com

QQ:108956454
  回复  引用    

#43楼  2007-03-30 09:23 ZSL [未注册用户]
http://blog.csdn.net/tsing_feng/archive/2006/12/30/1469179.aspx
  回复  引用    

#44楼  2007-03-30 10:08 ZSL [未注册用户]
给大家推荐一篇文章:
http://mapki.com/wiki/Tile_Cutter
  回复  引用    

#45楼  2007-06-11 23:24 adw2008 [未注册用户]
你好
  回复  引用    

#46楼  2007-06-11 23:37 adw2008 [未注册用户]
你好,我想把我自己的切图替换到你的程序里。我有个用VB写的程序,可以从Arcgis中进行切图,每张切图像素为256X256的,输出名称的方式是根据每张切图所在的行列数计算的,比如最左上角的名称为“1_0_0.jpg”,按照缩放比较进行分级。现在我想把这些切图替换到你的程序中,不过我对JS程序不懂,以前也没接触过来,看了下你程序的代码,看不懂,找不到替换文件的地方,不明白你的图片分级、命名是怎么改的?请问可以帮我解决这个问题吗?为此将非常感谢!

也可以联系我:daowenan@126.com
  回复  引用    

切割图形按照x,y的坐标来切割,填充的时候就是2个嵌套的循环不是就可以了吗
  回复  引用    

具体切图的时候我该怎么做呢???用mapx

  回复  引用    

#49楼  2008-01-22 14:20 冷月客 [未注册用户]
要是提供地图的切割方法就好了!
  回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

相关文章:

相关链接: