地理信息系统根据其内容可分为两大基本类型:一是应用型地理信息系统,以某一、领域或工作为主要内容,包括专题地理信息系统和区域综合地理信息系统;二是工具型地理信息系统,也就是GIS工具软件包。[8]本功能作为网络优化系统的一个功能模块,利用已有的地理信息系统,即MapInfo产品包进行应用型GIS的开发。
基站的经纬度信息保存在中,通常采用支持空间数据访问的系统。Voronoi图的呈现依赖于应用程序的电子地图组件,目前常见的GIS软件有Arc/Info系列、Intergraph GIS系列、Bentley系列和MapGIS系列。本文采用的系统是Oracle 10g,地图组件选用MapInfo公司的MapXtreme Java,使用Java语言编程实现。
由于基站的位置是经纬度形式,基站在地球球面上的位置并不是严格的平面,如果要将基站显示为平面上的点,必须先经过GPS的地图平面化的处理,使原来三维的球面可以表示在二维的平面上,类似于地图的功能。在计算几何学科中,人们形成了多种计算由点集生成Voronoi图的方法,其中Fortune算法的复杂度为O(n logn),是计算Voronoi图的最优算法。
Voronoi图的Fortune算法的原理是以扫描线自上而下扫描由点所在的平面,在扫描过程中利用发生的特定事件记录构建Voronoi图所需的端点以连线信息,并由此生成Voronoi图。数据结构是算法的骨骼,在Voronoi算法利用列表保存端点,利用双向链接表保存边,扫描过程中事件存储在队列中,由于事件点的发现需要高效的搜索算法,因此以二叉搜索树作为搜索使用的数据结构,保存扫描时的点和由点和扫描线构成的弧,可以将搜索指定条件的节点所需的时间复杂度保持在O(logn),因而能够提高搜索时的效率。
MapXtreme Java需要涉及到包含记录和地图的文件。数据既可以采用MapInfo格式,也可采用空间数据的格式。由于小区模拟使用的数据存储在Oracle,因此空间数据需要使用JDBC驱动程序连接RDBMS访问数据。

小区的模拟覆盖地图包含多个图层,可以选择将Voronoi图的绘制放在已有图层中,也可以单独使用一个新图层。由于Voronoi图的区域可以帮助选择和分析小区,因而最好建立新图层。
MapXtreme Java绘制地图要请求MapXtremeServlet实例获取数据,然后再使用MapXtremeDataProviderRef从其选的数据提供方服务器直接访问数据源。
使用Java语言实现地图创建和使用的方法如下:
1) MapJ对象初始化
MapJ myMap = new MapJ();
2) 加载地图数据 在MapJ对象创建完毕后,要加载加图数据。地图数据可以从Geoset文件加载,也可以从地图定义中加载,如文件中的地图定义、中的记录等。
MapDefContainer mdc = new FileMapDefContainer(dir);
其中dir是到包含地图定义文件目录的完整路径。mapxtreme或使用
MapDefContainter mdc = new JDBCMapDefContainer(driver, url, user, password);
其中driver、url、user和password均为连接参数。
3) 设置地图设施边界 设置渲染的地图图像的大小,需要在渲染之前完成,大小以像素计。
myMap.setDeviceBounds(new DoubleRect(0, 0, 800, 600));
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-33333-2.html
哈哈
乃至现在