生成并记录链状双重独立编码的拓扑空间数据结构1.原始道路图及拓扑编码结果
程序输出的结果如下:
2.程序结构设计图
代码结构如下所示:
a、cn.p.geom包:存储几何类和几何集类;
b、cn.p.handler包:存储创建链状双重独立编码一些操作类,比如创建多边形和关系;
c、cn.p.io包:存储用于读取地理要素文件的类;
d、cn.p.table包:存储表的类
e、cn.p.main包:存储了main方法
链状双重独立编码的创建过程设计如下:
3.程序代码
Point.java
package cn.p.geom;
/
**
* 点
* @author liguohui
* @version 2013/02/17
*/
publicclass Point {
privateint id; //id号
/**
* x坐标
*/
publicdouble x;
/
**
* y坐标
*/
publicdouble y;
/**
* 构造方法
* @param id 点的id
* @param x x坐标
* @param y y坐标
*/
public Point(int id, double x, double y) {
this.id = id;
this.x = x;
this.y = y;
}
/**
* 获取id号
* @return id号
*/
publicint getId() {
return id;
}
/
**
* 设置id号
* @param id id号
*/
publicvoid setId(int id) {
this.id = id;
}
@Override
public String toString() {
return"Point [id=" + id + ", x=" + x + ", y=" + y + "]";
}
}
Arc.javajava单例模式双重锁
package cn.p.geom;
import java.io.Serializable;
import java.util.Vector;
/**
* 弧段
* @author liguohui
*
* @version 2013/02/17
*/
publicclass Arc implements Serializable {
privatestaticfinallong serialVersionUID = 1L;
private String id; //弧段的id,弧段Id可能会加负号,所以不用char类型private Vector<Integer>pntsId = null; //弧段所包含的点的ID号
privateint timeOfSearch = 0; //遍历次数
privateint direction = 1; //弧段的方向
/**
* 构造方法
* @param id 弧段的id号
* @param pntsId 弧段点的集合(只保存点的id号)
* @param timeOfSearch 遍历次数,默认为0
* @param direction 方向,默认为1
*/
public Arc(String id,Vector<Integer> pntsId,int timeOfSearch,int direction){
this.id = id;
this.pntsId = pntsId;
this.timeOfSearch = timeOfSearch;
this.direction = direction;
}
/**
* 遍历次数+1
*/
publicvoid addTimeOfSearch() {
timeOfSearch++;
}
public Vector<Integer>getPntsId() {
return pntsId;
}
publicvoid setPntsId(Vector<Integer> pntsId) {
this.pntsId = pntsId;
}
publicint getTimeOfSearch() {
return timeOfSearch;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。