例子下载 只能在ie6下运行。做着玩,没考虑太多。打自己手板。
关于google maps其它服务我也在学习中,对于地图显示这块,研究了下,与大家分享.
因为 baidu maps 都是中国地图,我以baidu图片为例说明.
地图显示
其实你看到的地图不是一张图片,而是由300*300大小的png图片拼接起来的.
假如某一比例下,世界由以下12张300*300大小的png图片组成,假如中国宽500,高500,那么中国需要四张图片才能完全显示,(300< 500<(300*2)),所以当看到中国范围的时候,我现在中国周围的四张图片,其他的不下载,当我平移到别的地方,再下载其它图片。
1-1.png 1-2 1-3 1-4
2-1 2-2 2-3 2-4
3-1 3-2 3-3 3-4
我做了个可运行的例子 有兴趣可以下载看看。
我在 google maps 胡言乱语 也说到过,基于图片的地图有很多问题:不利于维护,地图复杂容易覆盖,不容易尽心空间分析等。 如果想关注传统GIS,可关注 http://webgis.blogjava.net/
工具栏
可能大家会说,那地图怎么实现放大啊。如果细心的朋友可能发现,浏览器下载图片时是从不同的服务器端文件夹下。我在例子的 w 0 1表示不同比例尺。其实google,baidu预先制作好了不同比例尺或不同详细程度的图片,当你移动刻度时,表示当前下载的图片比例尺不同。通过地图制作的预先处理,解决了放大缩小的问题,但这样放大缩小已经限定刻度了。
热点
你在baidu maps上点击地名会有相应的javascript事件,其实实现很简单,用小的<div>放到图片上层,根据坐标定义可以把地名放到屏幕合适位置。
总结
可以看出,google maps 地图显示部分不需要ajax,或者说不需要与服务器交互也可以实现,但这样安全性,开放性(服务概念)不是很好.更重要的是google maps提供的服务方式(google api).
现在dojo做的google maps 控件 可以很容易的应用google maps的服务.
感想:
非gis专业的公司思路真实开阔,我们这些gis专业人员应该开阔思路啊!
待续 关于位置服务