360°全景影像建库流程
1创建数据库
(1)数据库配置助手
点击菜单“开始”,找到Oracle数据库管理系统主文件夹“Oracle – OraDb11g_home1”(该文件夹名称因版本不同会有出入,使用时请按其命名规则自行对照),打开后找到子文件夹“配置和移植工具”,选择该文件夹下的“Database Configuration Assistant”。
(2)欢迎使用
数据库配置助手欢迎界面,点击“下一步”;
(3)操作
选择将要执行的操作,默认选择创建数据库,点击“下一步”;
(4)数据库模板
新建数据库的用途,一般用途按默认配置,点击“下一步”;
(5)数据库标识
给新建的数据库命名,这里我们输入“pano”,点击“下一步”;
(6)管理选项
选择数据库的管理策略,按默认配置,点击“下一步”;
(7)数据库身份证明
输入四个内置用户名的口令,为了便于记忆,我们输入的口令与其用户名保持一致,如:用户名sys对应的口令就是sys,点击“下一步“;
(8)存储选项
选择存储机制,按默认配置,点击“下一步”;
(9)数据库所在位置
选择数据库文件存放位置,按默认配置,点击“下一步”;
(10)恢复配置
选择数据库恢复策略,按默认配置,点击“下一步”;
(11)数据库内容
选择示例方案和定制脚本,按默认配置,点击“下一步”;
(12)初始化参数
初始化参数配置,按默认配置,点击“下一步”;
(13)安全设置
选择安全设置,按默认配置,点击“下一步”;
(14)自动维护任务
启动自动维护任务,按默认配置,点击“下一步”;
(15)数据库存储
数据库存储相关信息,按默认配置,点击“下一步”;
(16)创建选项
选择创建数据库的模板和脚本,按默认配置,点击“完成”;
(17)确认创建
确认新建数据库相关信息,按默认配置,点击“确定”;
(18)创建
(19)完成
数据库创建完成信息,按默认配置,点击“退出”。
注:以上是在Oracle11g中使用Database Configuration Assistant创建数据库的完整步骤。如果您使用的是其他版本的Oracle,也许会存在步骤上的差异,请自行对照。
2创建表空间和用户(1)进入命令提示行
点击“开始”菜单,选择“命令提示符”,或者运行“cmd”进入;
(2)输入sqlplus
在命令行输入:sqlplus,然后回车;
(3)输入用户名sys
使用sys账号以管理员的身份登录,在“请输入用户名:”之后输入:sys as sysdba,然后回车;
(4)输入密码sys
在“输入口令:”之后输入:sys,然后回车,出现连接到的提示,表示登录成功。
(5)创建表空间
在“SQL>”之后输入:
CREATE TABLESPACE POISPACE
DATAFILE 'D:\Oradata\pano\PANOSPACE.DBF' SIZE200M AUTOEXTEND ON NEXT 20M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
然后回车;
(6)创建用户名sa及口令admin
在“SQL>”之后输入:
CREATE USER "SA" PROFILE"DEFAULT" IDENTIFIED BY "admin" DEFAULT TABLESPACE"POISPACE" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT UNLIMITED TABLESPACE TO"SA";
GRANT "CONNECT" TO"SA";
GRANT "RESOURCE" TO"SA";
然后回车;
3创建数据表(1)PIC_ATTRIBUTE(全景影像基本信息表)
序号
字段名
类型
长度
空值
有效性规则
键
默认值
说明
1
PIC_ID
字符串型
20
否
PK
全景影像编号
2
PIC_FRONT_ID
字符串型
20
是
前一张全景影像编号
3
PIC_BACK_ID
字符串型
20
是
后一张全景影像编号
4
PIC_LEFT_ID
字符串型
20
是
左一张全景影像编号
5
PIC_RIGHT_ID
字符串型
20
是
右一张全景影像编号
6
LINE_ID
字符串型
20
否
线路编号
7
PIC_NAME
字符串型
200
否
影像文件名称,包括文件类型后缀
影像名称
8
WIDTH
长整型
否
影像宽度(像素)
9
HEIGHT
长整型
否
影像高度(像素)
10
LONGITUDE
浮点型
否
经度取值范围内
影像地理经度
11
LATITUDE
浮点型
否
纬度取值范围内
影像地理纬度
12
ABS_ANGLE
浮点型
否
影像参数
13
TOW_ANGLE
浮点型
否
影像参数
14
WORKER_NAME
字符串型
10
是
采集人
15
WORKER_DEP
字符串型
200
是
采集人所在单位
16
TIME
日期型
是
getdate()
影像采集时间
在“SQL>”之后输入:
CREATE TABLE"SA"."PIC_ATTRIBUTE"
(
PIC_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
PIC_FRONT_ID VARCHAR2(20),
PIC_BACK_ID VARCHAR2(20),
PIC_LEFT_ID VARCHAR2(20),
PIC_RIGHT_ID VARCHAR2(20),
LINE_ID VARCHAR2(20) NOT NULL,
PIC_NAME VARCHAR2(200) NOT NULL,
WIDTH NUMBER(7,0) NOT NULL,
HEIGHT NUMBER(7,0) NOT NULL,
LONGITUDE NUMBER(16,7) NOT NULL,
LATITUDE NUMBER(16,7) NOT NULL,
ABS_ANGLE NUMBER(16,7) NOT NULL,
TOW_ANGLE NUMBER(16,7) NOT NULL,
WORKER_NAME VARCHAR2(10),
WORKER_DEP VARCHAR2(200),
TIME VARCHAR2(20)
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(2)POI_LOCATION(兴趣点分布点位信息表)
序号
字段名
类型
长度
空值
有效性规则
键
默认值
说明
1
POI_ID
字符串型
20
否
PK
每个兴趣点记录编号
2
PIC_ID
字符串型
20
否
全景影像编号
3
ATTR_ID
字符串型
20
是
FK
属性编号
4
LOCAL_X
浮点型
否
像素取值范围内
像素X坐标
5
LOCAL_Y
浮点型
否
像素取值范围内
像素Y坐标
6
LONGITUDE
浮点型
是
经度取值范围内
地理经度
7
LATITUDE
浮点型
是
纬度取值范围内
地理纬度
8
TIME
日期型
是
getdate()
采集时间
在“SQL>”之后输入:
CREATE TABLE"SA"."POI_LOCATION"
(
POI_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
PIC_ID VARCHAR2(20) NOT NULL,
ATTR_ID VARCHAR2(20),
LOCAL_X NUMBER(7,0) NOT NULL,
LOCAL_Y NUMBER(7,0) NOT NULL,
LONGITUDE NUMBER(16,7),
LATITUDE NUMBER(16,7),
TIME VARCHAR2(20)
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(3)POI_ATTRIBUTE(兴趣点属性信息表)
序号
字段名
类型
长度
空值
有效性规则
键
默认值
说明
1
ATTR_ID
字符串型
20
否
PK
属性编号
2
NAME
字符串型
50
否
实体名称
3
TELEPHONE
字符串型
15
是
电话号码格式
电话号码
4
字符串型
30
是
邮件地址格式
电子邮件地址
5
TYPE1
字符串型
20
否
兴趣点一级分类
6
TYPE2
字符串型
20
否
兴趣点二级分类
7
ADD_NAME
字符串型
50
是
地址名称
8
ADD_CODE
字符串型
6
否
地址编码
9
DES
字符串型
500
是
兴趣点描述信息
在“SQL>”之后输入:
CREATE TABLE"SA"."POI_ATTRIBUTE"
(
ATTR_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
NAME VARCHAR2(50) ,
TELEPHONE VARCHAR2(15),
EMAIL VARCHAR2(30),
TYPE1 VARCHAR2(20),
TYPE2 VARCHAR2(20),
ADD_NAME VARCHAR2(50),
ADD_CODE VARCHAR2(6),
DES VARCHAR2(500)
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(4)POI_ENCODE(兴趣点分类编码表)
序号
字段名
类型
长度
空值
有效性规则
键
默认值
说明
1
ID
长整型
20
否
自增长
PK
序号
2
TYPE_NAME
字符串型
20
否
一级分类名称
3
TYPE_CODE
字符串型
4
否
2位纯数字
一级分类编码
4
TYPE_NAME2
字符串型
20
否
二级分类名称
5
TYPE_CODE2
字符串型
8
否
2位纯数字
二级分类编码
6
DES
字符串型
500
是
分类说明
在“SQL>”之后输入:
CREATE TABLE"SA"."POI_ENCODE"
(
IDVARCHAR2(20) NOT NULL PRIMARY KEY,
TYPE_NAME VARCHAR2(20) NOT NULL,
TYPE_CODE VARCHAR2(4) NOT NULL,
TYPE_NAME2 VARCHAR2(20) NOT NULL,
TYPE_CODE2 VARCHAR2(8) NOT NULL,
DES VARCHAR2(500)
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(5)LOCATION_ENCODE(省市地区分类编码表)
序号
字段名
类型
长度
空值
有效性规则
键
默认值
说明
1
ID
长整型
否
自增长
PK
序号
2
PROVINCE_NAME
字符串型
20
否
省市名称
3
PROVINCE_CODE
字符串型
6
否
6位纯数字
省市编号
4
AREA_NAME
字符串型
20
否
地区名称
5
AREA_CODE
字符串型
6
否
6位纯数字
地区编号
6
COUNTY_NAME
字符串型
20
否
区县名称
7
COUNTY_CODE
字符串型
6
否
6位纯数字
区县编号
在“SQL>”之后输入:
CREATE TABLE"SA"."LOCATION_ENCODE"
(
IDNUMBER(7,0) NOT NULL PRIMARY KEY,
PROVINCE_NAME VARCHAR2(20) NOT NULL,
PROVINCE_CODE VARCHAR2(6) NOT NULL,
AREA_NAME VARCHAR2(20) NOT NULL,
AREA_CODE VARCHAR2(6) NOT NULL,
COUNTY_NAME VARCHAR2(20) NOT NULL,
COUNTY_CODE VARCHAR2(6) NOT NULL
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(6)PIC_SLICE_0(全景影像零级切片信息表)
序号
字段名
类型
长度
空值
有效性规则
键
默认值
说明
1
SLICE_ID
字符串型
20
否
PK
切片编号
2
SLICE_NAME
字符串型
20
否
切片名称
3
PIC_ID
字符串型
20
否
图片编号
4
ALPHA_MAX
浮点型
否
0-360
水平角最大值
5
ALPHA_MIN
浮点型
否
0-360
水平角最小值
6
BETA_MAX
浮点型
否
0-180
俯仰角最大值
7
BETA_MIN
浮点型
否
0-180
俯仰角最小值
8
Z_MAX
浮点型
否
>0
焦距最大值
9
Z_MIN
浮点型
否
>0
焦距最小值
10
SLICE_CONTENT
二进制流
否
切片数据
在“SQL>”之后输入:
CREATE TABLE"SA"."PIC_SLICE_0"
(
SLICE_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
SLICE_NAME VARCHAR2(20) NOT NULL,
PIC_ID VARCHAR2(20) NOT NULL,
ALPHA_MAX NUMBER(8,4) NOT NULL,
ALPHA_MIN NUMBER(8,4) NOT NULL,
BETA_MAX NUMBER(8,4) NOT NULL,
BETA_MIN NUMBER(8,4) NOT NULL,
Z_MAX NUMBER(16,7) NOT NULL,
Z_MIN NUMBER(16,7) NOT NULL,
SLICE_CONTENT BLOB NOT NULL
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(*)PIC_SLICE_N(全景影像N级切片信息表)
序号
字段名
类型
长度
空值
有效性规则
键
默认值
说明
1
SLICE_ID
字符串型
20
否
PK
切片编号
2
SLICE_NAME
字符串型
20
否
切片名称
3
PIC_ID
字符串型
20
否
图片编号
4
ALPHA_MAX
浮点型
否
0-360
水平角最大值
5
ALPHA_MIN
浮点型
否
0-360
水平角最小值
6
BETA_MAX
浮点型
否
0-180
俯仰角最大值
7
BETA_MIN
浮点型
否
0-180
俯仰角最小值
8
Z_MAX
浮点型
否
>0
焦距最大值
9
Z_MIN
浮点型
否
>0
焦距最小值
10
SLICE_CONTENT
二进制流
否
切片数据
PIC_SLICE_N,表示切片有多少级就创建多少张表,每一级对应一张表,每张表的字段与PIC_SLICE_0完全一致,所以就不再阐述了。表命名如:PIC_SLICE_1(对应一级切片),PIC_SLICE_2(对应二级切片),PIC_SLICE_3(对应三级切片)等。
4连接数据库(1)启动Oracle服务;
(2)点击菜单“设置>>数据库设置”,设置参数,数据库类型选择Oracle;
(3)测试连接:单击按钮“测试连接”;
(4)连接成功;
(5)保存:单击按钮“确定”。
5表空间扩容当影像数据入库容量达到一定数值,如:30G是单个表空间数据文件的最大容量值,这时候继续往Oracle录入数据的无法成功的。可以通过如下两条语句查看当前表空间的使用状况以及扩展当前表空间的容量。
(1)查看表空间:
select sum(bytes)/(1024*1024) as free_space,tablespace_name
from dba_free_space
group by tablespace_name;
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
(2)扩容表空间:
alter tablespace tablespace_name add datafile '新增表空间数据文件路径和名称' size 30000M;