日期:2014-05-20  浏览次数:20751 次

请教j2se绘制地图的思路
其实也不算是地图,只是想在swt的某个窗体上绘制一些点,但是这些点都是有实际的经纬度的。根据实际的经纬度情况,将他们画出来,并且每个点都是可以触发点击事件的。
这里涉及到几个问题我想不通,希望大家多帮帮我。哪怕你没做过,只是讲讲思路也好,现在的地图都是web的,j2se桌面程序的资料实在太少了。
1、窗体上的一点,如何对应经纬度,经纬度都是小数点后N位,而窗体上的点都是整数。
2、我应该参照经纬度来计算出他应在窗体上的哪一点?还是参照窗体上的点来计算出经纬度?
3、如何让这一点可以相应点击事件?我理解“点”应该作为一个类出现,但是如何让他相应点击实践?总不能每个点都是一个label吧?我画1万多个点要用label恐怕要死机了。
4、如果上述问题都可以解决的话,我还想知道关于在窗体上加载地图背景,如何将背景地图与坐标点校准的问题,以及map缩放问题。


一个实际的例子:
比如地铁里面的售票机的那种地图,有很多条线路,没条线路有很多的站点,点击一个站点后就可以买票。

如果你有类似的经验麻烦分享下,如果没有那么给我讲一下思路也可以啊。

提前拜谢!谢谢了!

------解决方案--------------------
首先地图坐标系和界面上的坐标系是不同的,需要有转换的方式。其次绘图应该用 java2D 来实现,而不能用控件。关于 java2d,这里有一个不错的教程:

http://blog.163.com/among_1985/blog/static/275005232009973933282/
------解决方案--------------------
试试TWaver GIS。
------解决方案--------------------
1.四舍五入 这个感觉没啥解释的
2,依据经纬度画点 会比较准确 毕竟带小数点的是经纬度 像素你算不出来小数
3,swt是swing么?如果是的话 很久没用swing了但是最简单脑残的方法画点不如画圆 圆形总可以相应事件了吧
 另外如果个人研究推荐用javaFx