小弟今年第一次发帖,求各位高手给个思路,不懂的帮顶一下谢谢了

时间:2021-01-12 20:48:55
问题是这样的,有一个船舶停靠系统,实现在船停泊的位置上,可以显示当前有没有船停靠,
停靠位有600多个,请问这个系统应该怎么做,不想用GIS之类的地图控件,
我可以截当前码头的地图,不过地图很大一个界面显示不开,谁有什么比较节约开发成本的办法,麻烦支个招,不用说具体的实现,只要说说思路就行了

33 个解决方案

#1


第一个想法就是 托个label,用地图作背景,根据船的位置映射为坐标,在label中相应得x,y点加图

#2


用网管系统的拓扑来表示
背景是地图,支持拖动,支持更换,支持上传图片,支持放大缩小,支持保存拓扑
如果码头有分区什么的,可以分区域   比方第一界面显示有多少区,第二界面显示区内码头
停靠位做一个ascx,支持拖动,放大、缩小,这样你可以放在合适的位子上

#3


帮你顶顶~~~

#4


引用 1 楼 mabaolin 的回复:
第一个想法就是 托个label,用地图作背景,根据船的位置映射为坐标,在label中相应得x,y点加图

+1

#5


建一个FORM, 放一个PANEL控件,用地图作为背景,给空间加上滚动条

定义一个类结构,可以保存每个停靠位的X,Y坐标,还有是否停靠的标识

实例化这个类的数组,600个元素,建议用EXCEL或者逗号分隔符从外部文件加载每个停靠位的坐标,为每个坐标创建一个LABEL或者IMAGE控件(这个随你喜欢),定位到对应的PANEL上,然后就可以按照停靠标识决定这个LABEL或者IMAGE显示什么颜色或者什么图片(很直观)

有停进或者开出只需要修改这个600个元素的数组对应的停靠标识即可

当然,如果你还有别的扩展要求,可以扩展这个类 :)

#6


可以参考一下宾馆的管理系统,房间号可以换成坐标。

#7


引用 2 楼 sj97a007 的回复:
用网管系统的拓扑来表示
背景是地图,支持拖动,支持更换,支持上传图片,支持放大缩小,支持保存拓扑
如果码头有分区什么的,可以分区域 比方第一界面显示有多少区,第二界面显示区内码头
停靠位做一个ascx,支持拖动,放大、缩小,这样你可以放在合适的位子上

这个回答还比较靠谱点,你们说的我也能想到。。。再想想谢谢了

#8


制作简单的地图

这个是csdn上的制作简单的地图 需要下载 下载积分为1积分

#9


这个东西实现思路和房态图的思路很像,

熟悉下WPF吧, 这个效果很炫

#10


友情幫頂。

#11


引用 6 楼 xm18love 的回复:
可以参考一下宾馆的管理系统,房间号可以换成坐标。

是换成停靠位吧,如果是划分好的固定停靠位。
如果没有划分好固定的停靠位,而是“足够停靠600个船的空间”,这样做就不行了。。。

不过楼主要的是图形界面吗?
真实的图像或者地图难度就大一些,如果用简易的框框代表停靠位的简图就好做一些,即使失真,能看懂就行

#12


我在详细说一下吧,他一个停靠位可能会有很多个船停下来,600*(1~3),当然这个比例也不完全准确,但是船的数量肯定是600以上的,而且麻烦的地方就麻烦在600个停靠位,这个地图的的大小肯定不能像宾馆那么小了,所以宾馆的方案只能用一小部分的逻辑,最麻烦的地方还是没有解决就是图形太大,如果你开发的话,一个一个放控件,还要对准了,那不是要累死?你放的时候都不好放那么大个地图肯定不是1024*800那么小的

#13


我想要的是在客户满意的情况下尽量的节约开发成本,不是为公司省钱,而是我实在太懒。。。

#14


希望有高手继续回答啊

#15


友情幫頂。

#16


只有帮顶了! 

#17


给 LZ 顶了

#18


感觉Lz这个主要是就是坐标问题。首先要通过坐标转换,将屏幕坐标和地理平面坐标对应起来。不一定一次要把所有的一张很大的图全部打开啊,可以动态的根据缩放比例打开相应范围内的就可以了(这个我没有做过但是肯定可以),然后在船停靠时,根据船的实际地理平面坐标,转换为屏幕坐标,在屏幕上显示。

#19


绑定绑定

#20


觉得可以这样子。
因为数据量不大,600个位置。可以以停靠点做标示,遍历所有的停靠点,已经有船停的话标示红色。其它的和2#说的一样。

#21


用坐标实现??

#22


帮忙顶一下吧。

#23


不是很明白 帮忙顶吧

#24


那我顶一下咯!!!

#25


先说好,我做的跟GIS没有关系啊,只是管理员手动去登记一下如果有船停靠了,不需要什么通讯,地图基本上也没什么关系,我只要找到对应的背景图片应该就可以了,只是背景图片可能会过大,用滚动条还是分区显示还不太确定,我想问的是,有没有更好的解决方案啊,难道就只有通过添加控件来解决?问题停泊位的位置不是左右的,可能是上下也可能是斜着的,怎么样用一个简单的办法又能合理的展示给客户这个才是我想问的。
就是说船头和船尾的位置不一定是东西方向的,也可能是南北,或者东南 西北这样的,角度不太一样啊,你总不能画个,你总不能让我画个船他跑到岸上了吧就不太合理

#26


帮顶,关注

#27


顶哈 ···

#28


帮你顶顶....

#29


有没有好的方案啊

#30


现在还在写坐标一共4000多个我操

#31


引用 28 楼 igiqoanw 的回复:
帮你顶顶....

+1

#32


+1
顶 。学习

#33


好吧,我现在是这么做的,一个大图,像素是3000*2000或者2000*3000,然后我用GDI+画矩形,矩形哪来的呢?我从地图上一个点一个点找的,然后移动矩形的角度,完成。结贴

#1


第一个想法就是 托个label,用地图作背景,根据船的位置映射为坐标,在label中相应得x,y点加图

#2


用网管系统的拓扑来表示
背景是地图,支持拖动,支持更换,支持上传图片,支持放大缩小,支持保存拓扑
如果码头有分区什么的,可以分区域   比方第一界面显示有多少区,第二界面显示区内码头
停靠位做一个ascx,支持拖动,放大、缩小,这样你可以放在合适的位子上

#3


帮你顶顶~~~

#4


引用 1 楼 mabaolin 的回复:
第一个想法就是 托个label,用地图作背景,根据船的位置映射为坐标,在label中相应得x,y点加图

+1

#5


建一个FORM, 放一个PANEL控件,用地图作为背景,给空间加上滚动条

定义一个类结构,可以保存每个停靠位的X,Y坐标,还有是否停靠的标识

实例化这个类的数组,600个元素,建议用EXCEL或者逗号分隔符从外部文件加载每个停靠位的坐标,为每个坐标创建一个LABEL或者IMAGE控件(这个随你喜欢),定位到对应的PANEL上,然后就可以按照停靠标识决定这个LABEL或者IMAGE显示什么颜色或者什么图片(很直观)

有停进或者开出只需要修改这个600个元素的数组对应的停靠标识即可

当然,如果你还有别的扩展要求,可以扩展这个类 :)

#6


可以参考一下宾馆的管理系统,房间号可以换成坐标。

#7


引用 2 楼 sj97a007 的回复:
用网管系统的拓扑来表示
背景是地图,支持拖动,支持更换,支持上传图片,支持放大缩小,支持保存拓扑
如果码头有分区什么的,可以分区域 比方第一界面显示有多少区,第二界面显示区内码头
停靠位做一个ascx,支持拖动,放大、缩小,这样你可以放在合适的位子上

这个回答还比较靠谱点,你们说的我也能想到。。。再想想谢谢了

#8


制作简单的地图

这个是csdn上的制作简单的地图 需要下载 下载积分为1积分

#9


这个东西实现思路和房态图的思路很像,

熟悉下WPF吧, 这个效果很炫

#10


友情幫頂。

#11


引用 6 楼 xm18love 的回复:
可以参考一下宾馆的管理系统,房间号可以换成坐标。

是换成停靠位吧,如果是划分好的固定停靠位。
如果没有划分好固定的停靠位,而是“足够停靠600个船的空间”,这样做就不行了。。。

不过楼主要的是图形界面吗?
真实的图像或者地图难度就大一些,如果用简易的框框代表停靠位的简图就好做一些,即使失真,能看懂就行

#12


我在详细说一下吧,他一个停靠位可能会有很多个船停下来,600*(1~3),当然这个比例也不完全准确,但是船的数量肯定是600以上的,而且麻烦的地方就麻烦在600个停靠位,这个地图的的大小肯定不能像宾馆那么小了,所以宾馆的方案只能用一小部分的逻辑,最麻烦的地方还是没有解决就是图形太大,如果你开发的话,一个一个放控件,还要对准了,那不是要累死?你放的时候都不好放那么大个地图肯定不是1024*800那么小的

#13


我想要的是在客户满意的情况下尽量的节约开发成本,不是为公司省钱,而是我实在太懒。。。

#14


希望有高手继续回答啊

#15


友情幫頂。

#16


只有帮顶了! 

#17


给 LZ 顶了

#18


感觉Lz这个主要是就是坐标问题。首先要通过坐标转换,将屏幕坐标和地理平面坐标对应起来。不一定一次要把所有的一张很大的图全部打开啊,可以动态的根据缩放比例打开相应范围内的就可以了(这个我没有做过但是肯定可以),然后在船停靠时,根据船的实际地理平面坐标,转换为屏幕坐标,在屏幕上显示。

#19


绑定绑定

#20


觉得可以这样子。
因为数据量不大,600个位置。可以以停靠点做标示,遍历所有的停靠点,已经有船停的话标示红色。其它的和2#说的一样。

#21


用坐标实现??

#22


帮忙顶一下吧。

#23


不是很明白 帮忙顶吧

#24


那我顶一下咯!!!

#25


先说好,我做的跟GIS没有关系啊,只是管理员手动去登记一下如果有船停靠了,不需要什么通讯,地图基本上也没什么关系,我只要找到对应的背景图片应该就可以了,只是背景图片可能会过大,用滚动条还是分区显示还不太确定,我想问的是,有没有更好的解决方案啊,难道就只有通过添加控件来解决?问题停泊位的位置不是左右的,可能是上下也可能是斜着的,怎么样用一个简单的办法又能合理的展示给客户这个才是我想问的。
就是说船头和船尾的位置不一定是东西方向的,也可能是南北,或者东南 西北这样的,角度不太一样啊,你总不能画个,你总不能让我画个船他跑到岸上了吧就不太合理

#26


帮顶,关注

#27


顶哈 ···

#28


帮你顶顶....

#29


有没有好的方案啊

#30


现在还在写坐标一共4000多个我操

#31


引用 28 楼 igiqoanw 的回复:
帮你顶顶....

+1

#32


+1
顶 。学习

#33


好吧,我现在是这么做的,一个大图,像素是3000*2000或者2000*3000,然后我用GDI+画矩形,矩形哪来的呢?我从地图上一个点一个点找的,然后移动矩形的角度,完成。结贴