为什么要取这样的一个题目呢?主要是因为今天去了一家公司和他们谈了谈,本来是指望做兼职的,谈到最后当然是不成了。去谈的是地图制作(可兼职)一职,要求是地图制图经验,最后加了个有WEBGIS开发经验。本来想自己毕业设计做的就是WEBGIS,而且对WEBGIS很感兴趣,最主要的是我从事的便是地图方面的工作,合情合理。最后谈下来是不需要我去制图而是需要我去搭建一个WEBGIS平台,跟他们谈了下MapInfo公司和ESRI的平台中间还谈了超图公司的平台还谈到了MapBar这样的地图网站,最后呢选择了象MapBar这样的平台(也不能算平台,只能说是原理),因为他们本身的WEBGIS要求比MapBar还要简单。为什么不成我想现在也明白了吧,我是主攻地图数据这块的,让我搭建平台也行,但程序我就不行了,要是我会程序我早就把MapBar这样的网站给研究出来了。
其实两者的平台完全不一样,一个是基于矢量地图的发布一个是基于栅格地图的发布,个人觉得速度是栅格的要快,因为象MapBar这样的纯粹是把地图切割后无缝拼接(为什么要家个无缝呢,看灵图的地图就知道了,灵图的地图是有缝隙的)显示吗(我指的是MapBar的博客地图以及提供给百度的地图的实现部分就是运用这样原理实现的,但MapBar和MapABC他们的主平台并不是用这种原理实现的),其实象Google Map API、灵图的API、E都市等网站实现的原理都是这样的,至少他们在客户端是这样用JS方法实现的,就那么四五千行的JS代码吗,其中线面状的图完全作为底图,图上看到的部分点也已经是图片了,不就是在MapInfo或者ArcInfo中将点线面的标注打开然后分幅保存成栅格图就OK了,地图显示部分就解决了,关于放大缩小在不同比例尺下显示那就是不同比例尺下截取不同的图而已,大比例尺截的图非常多,小比例尺就比较少了,不相信你自己可以下载MapBar里的世界地图,就是显示全世界的图,清空你的IE临时文件夹,然后拖拉世界地图看一遍整个世界地图,然后你再到你的IE临时文件夹去看,就是那么多幅的世界地图而已,大比例尺就很多了我就不多说了。至于查询到的点等信息,完全是建个数据库,这个数据库就比较丰富了,你可以包括点的名称信息等(比如公司名称公司介绍公司地址网站连接等等),这个其实很重要,如果你在这个数据库上可以翻出花样来说不定就可以赚钱,但是,这些点需要两个最基本的字段,就是X坐标和Y坐标的值(可能是一个值,进行了加密的缘故吧),至于样式什么的就简单了,你完全可以建个TYPE字段各个值对应一种样式就OK了(比如google提供的点有不同的颜色,我所说的样式便是指这些)。有了XY值就简单了,从数据库中读出来然后丢给JS就可以让JS在地图上标出准确的位置了,至于显示气泡框等这样的也就是数据库里传几个值让JS执行下就OK了(这里可以用对查询到的数据生成XML让JS读取或者用JSP等读取数据后直接生成JS代码,如果使用SQL server就很简单,一个查询语句就可以生成XML让JS调用了,超图的IS就是读XML数据的)。关于公交路线和驾车路线,这个比较麻烦,最短路径的算法我到现在还是不会,但有一点是可以肯定的,就是生成的路线其实是很多的点,把各个点连接起来就是线了,不相信你可以去百度地图着个换乘的路线看看,只是这个如何使用JSP来实现计算的我就不太清楚了。一个简单的WEBGIS模型就成型了,简单不?
可惜我不会技术那,所以我要一边骂技术更新太快而且不值钱一边骂自己水平太菜(其实也不能说技术更新太快,比如AJAX,其实就是JS+XML等,几年前就在大富翁论坛讨论过了)。所以我今天把这个框架写出来,希望这里的朋友能够联合起来成立个团队,写出自己的JS或者把MapBar的JS研究出来,并发布自己的API,搞定地图,写出网站程序,把这个WEBGIS平台给搭建起来,希望开源并能够运用到中小企业(当然这些需要在一份详细的计划书的前提下)。有兴趣的朋友可以多多讨论。
重点难点:
一:吃透JS代码(这JS代码里已经包含了放大缩小平移以及测量画线还有双击移动到中心等,地图显示部分就是完全靠这么多的JS);
二:地图数据部分,坐标问题,如何转换,如何切图,切图后如何命名等,还有特殊点的坐标信息等录入数据库(需要根据JS里的算法以符合JS的算法,这是基础数据部分,看到的地图就是地图数据);
三:网站程序部分,读取数据库,生成JS或者XML等。
讨论:
一:我上面所说的框架是否正确并可行?
二:从技术、速度等方面讨论基于栅格地图和基于矢量地图的WEBGIS优势和劣势,以及各平台的优劣。
[更新:Google Maps带来的新型WebGIS设计模式]
看了这篇文章觉得非常的好,非常的有深度,所以转了下,来自二度空间。
原文索引:http://spaces.msn.com/members/gemtang/Blog/cns!1p8Kzn8ffRJpPVVp4vlG3Vxg!195.entry
以下是引文:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
RoverTang@罗孚传说
E-mail:65985498[at]qq.com
微博/微信:rovertang