1.一种三维GIS异步通信传输系统,包括客户端与服务器,所述服务器中包括三维空间数据库,用于管理地形数据、影像数据、城市三维模型数据及其属性数据等三维GIS数据以及用户连接权限数据,其特征在于,所述三维GIS异步通信传输系统包括:所述客户端包括:
第一通信模块,用于将连接请求封装成连接消息,将连接消息发送至所述服务器;
所述服务器包括:
监听模块,用于监听所述客户端的所述连接消息,解析连接消息中的连接请求参数;
判断模块,用于从三维空间数据库获取用户连接权限数据,判断所述连接请求的参数是否正确,其中,所述监听模块还用于在所述连接请求的参数正确时建立与所述客户端的连接,所述第一通信模块还用于将三维空间数据查询请求封装成三维空间数据查询消息发送到所述服务器,所述监听模块还用于接收所述三维空间数据查询消息,并依次放到三维空间数据查询消息队列中;
第二通信模块,用于从三维空间数据查询消息队列中依次取出三维空间数据查询消息,交由通信线程池中的空闲线程进行解析处理,并将三维空间数据查询消息转换为三维空间数据库查询任务,放入到数据库查询任务队列中;
三维空间数据调度模块,用于从调度线程池和数据库连接池中分别取出空闲的调度线程和数据库连接执行三维空间数据库查询任务,并返回查询结果,其中,所述第二通信模块还用于接收所述查询结果,将所述查询结果中的数据序列化为字节流的形式,并进行压缩得到压缩数据包,获取所述客户端的通信句柄,并根据所述通信句柄将所述压缩数据包发送至所述客户端,所述第一通信模块还用于接收所述压缩数据包;
所述客户端还包括数据处理模块,用于对所述压缩数据包进行数据重组、解压缩与解序列化操作,得到待查询的三维空间对象。
2.如权利要求1所述的三维GIS异步通信传输系统,其特征在于,所述第一通信模块通过从消息发送线程池取出一条空闲线程从消息队列中的头部依次取出一条消息,将消息发送到所述服务器,该线程设为忙碌状态并加锁等待所述服务器返回消息。
3.如权利要求1所述的三维GIS异步通信传输系统,其特征在于,所述第一通信模块收到所述服务器数据返回的消息后,将该通知发给数据接收线程,该消息发送线程设为空闲状态并解锁,并回收到消息发送线程池中的空闲线程队列中。
4.如权利要求1所述的三维GIS异步通信传输系统,其特征在于,所述判断模块还用于判断所述压缩数据包的大小是否大于固定值,且所述第二通信模块在所述压缩数据包大于固定值时对所述压缩数据包进行分包。
5.如权利要求4所述的三维GIS异步通信传输系统,其特征在于,所述第二通信模块还用于在所述压缩数据包小于等于固定值时直接将所述压缩数据包发送给所述客户端。
6.如权利要求4或5所述的三维GIS异步通信传输系统,其特征在于,所述数据处理模块通过解析所述压缩数据包的报头信息进行数据重组,以获取完整的压缩数据包。
7.一种三维GIS异步通信传输方法,用于客户端与服务器之间通信,其中,所述服务器中包括三维空间数据库,用于管理地形数据、影像数据、城市三维模型数据及其属性数据等三维GIS数据以及用户连接权限数据,其特征在于,所述方法包括以下步骤:所述服务器开启通信监听,监听所述客户端的连接请求;
所述客户端将连接请求封装成连接消息,将连接消息发送至所述服务器;
所述服务器监听所述客户端的所述连接消息,解析连接消息中的连接请求参数;
服务器从所述三维空间数据库获取用户连接权限数据,判断所述连接请求的参数是否正确;
若所述连接请求的参数正确,则所述服务器建立与所述客户端的连接;
所述客户端将三维空间数据查询请求封装成三维空间数据查询消息发送到所述服务器;
所述服务器接收所述三维空间数据查询消息,并依次放到三维空间数据查询消息队列中;
所述服务器从三维空间数据查询消息队列中依次取出三维空间数据查询消息,交由通信线程池中的空闲线程进行解析处理,并将三维空间数据查询消息转换为三维空间数据库查询任务,放入到数据库查询任务队列中;
所述服务器从调度线程池和数据库连接池中分别取出空闲的调度线程和数据库连接执行三维空间数据库查询任务,并返回查询结果;
所述服务器接收所述查询结果,将所述查询结果中的数据序列化为字节流的形式,并进行压缩得到压缩数据包;
所述服务器获取所述客户端的通信句柄,并根据所述通信句柄将所述压缩数据包发送至所述客户端;
所述客户端接收所述压缩数据包;
所述客户端对所述压缩数据包进行数据重组、解压缩与解序列化操作,得到待查询的三维空间对象。
8.如权利要求7所述的三维GIS异步通信传输方法,其特征在于,所述客户端通过从消息发送线程池取出一条空闲线程从消息队列中的头部依次取出一条消息,将消息发送到所述服务器,该线程设为忙碌状态并加锁等待所述服务器返回消息。
9.如权利要求1所述的三维GIS异步通信传输方法,其特征在于,所述客户端收到所述服务器数据返回的消息后,将该通知发给数据接收线程,该消息发送线程设为空闲状态并解锁,并回收到消息发送线程池中的空闲线程队列中。
10.如权利要求7所述的三维GIS异步通信传输方法,其特征在于,还包括以下步骤:所述服务器判断所述压缩数据包的大小是否大于固定值;
所述服务器在所述压缩数据包的大小大于固定值时,对所述压缩数据包进行分包;
将分包后的压缩数据包根据所述通信句柄发送至所述客户端。
11.如权利要求10所述的三维GIS异步通信传输方法,其特征在于,还包括以下步骤:所述服务器在所述压缩数据包的大小小于等于固定值时将所述压缩数据包根据所述通信句柄直接发送至所述客户端。
12.如权利要求10或11所述的三维GIS异步通信传输方法,其特征在于,所述客户端通过解析所述压缩数据包的报头信息进行数据重组,以获取完整的压缩数据包。