地理信息怎样在数据库里存储?

freezesword 2011-03-24 02:58:47
准备做一个Android的LBS的小应用,不过不知道数据库该如何设计,目前考虑用SQL SERVER 或Oracle做数据库,调用Google map的api。
提个问题,假设某地的某条公路,我想在手机上显示的时候将这条路标注为红色,应该怎样做?数据库中应该怎样存储?
...全文
601 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanpy88 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sphonix 的回复:]
为什么不用一个免费的GIS引擎呢?这样的话你可以省下很多事情去做你想做的创意,而不是花大量时间在那研究GIS数据怎么存储和处理。

PS:LBS什么意思啊,落伍了~
[/Quote]
sphonix,话不能这样子说,LBS可以应用大众,GIS在国内只能为政府服务
freezesword 2011-03-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 herowang 的回复:]

Android中用的sqlite,貌似没有空间数据类型
[/Quote]
准备通过服务器端程序传输并解析xml,不用手机直接读取数据库~
  • 打赏
  • 举报
回复
Android中用的sqlite,貌似没有空间数据类型
--小F-- 2011-03-25
  • 打赏
  • 举报
回复
楼主可以去看看空间数据的存储 也可以去看看ARCGIS SDE的用法 呵呵

freezesword 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sphonix 的回复:]

为什么不用一个免费的GIS引擎呢?这样的话你可以省下很多事情去做你想做的创意,而不是花大量时间在那研究GIS数据怎么存储和处理。

PS:LBS什么意思啊,落伍了~
[/Quote]
地图调用Google Map,而且我这里只存储部分我需要的地理数据(如一条道路的始终坐标,一个商店的坐标等...并在地图上显示),是否需要GIS引擎?我对这个东西并不了解,请多多指教哈~
freezesword 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxf163 的回复:]

数据库设计到不难,通用的就那么一两种格式

主要是数据信息得花钱买。。。唉
[/Quote]
应该不用买数据吧?而且我只是学生,没钱呃....数据库类似于POI,不是存储所有的地理数据,地图显示调用Google Map...
freezesword 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fredrickhu 的回复:]

SQL code
--空间数据的一些操作

1.在创建表时定义geometry类型的列
例子:
create table streets
(
streetid int identity(1,1),
streetName nvarchar(20),
streetGeo geometry
);
go

2.向表中插入几何数据
insert into streets values('street1'……
[/Quote]
太厉害了,谢谢^_^~~~还有请问有这方面的书籍或资料么?感觉还是太抽象了些~~
zhazhuzhao 2011-03-24
  • 打赏
  • 举报
回复
2楼的很厉害了!学习学习了!
Sphonix 2011-03-24
  • 打赏
  • 举报
回复
为什么不用一个免费的GIS引擎呢?这样的话你可以省下很多事情去做你想做的创意,而不是花大量时间在那研究GIS数据怎么存储和处理。

PS:LBS什么意思啊,落伍了~
王向飞 2011-03-24
  • 打赏
  • 举报
回复
数据库设计到不难,通用的就那么一两种格式

主要是数据信息得花钱买。。。唉
Mr_Nice 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 haiwer 的回复:]

sql server2008专门有用于地理信息的数据类型,没仔细研究过
[/Quote]

关注。
zhenzhen_1987 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fredrickhu 的回复:]

SQL code
--空间数据的一些操作

1.在创建表时定义geometry类型的列
例子:
create table streets
(
streetid int identity(1,1),
streetName nvarchar(20),
streetGeo geometry
);
go

2.向表中插入几何数据
insert into streets values('street1'……
[/Quote]

好厉害哇
dawugui 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 freezesword 的回复:]
准备做一个Android的LBS的小应用,不过不知道数据库该如何设计,目前考虑用SQL SERVER 或Oracle做数据库,调用Google map的api。
提个问题,假设某地的某条公路,我想在手机上显示的时候将这条路标注为红色,应该怎样做?数据库中应该怎样存储?
[/Quote]好项目,关注中.
--小F-- 2011-03-24
  • 打赏
  • 举报
回复
还有一些可以参考我的BLOG
--小F-- 2011-03-24
  • 打赏
  • 举报
回复
--空间数据的一些操作

1.在创建表时定义geometry类型的列
例子:
create table streets
(
streetid int identity(1,1),
streetName nvarchar(20),
streetGeo geometry
);
go

2.向表中插入几何数据
insert into streets values('street1',geometry::stgeomfromtext('LINESTRING(100 100,20 180, 180 180)',0))

3.从表中获取几何数据
--注意,直接读取无法看到真实的含义,可以在select 语句将该列的值读取到一个几何数据类型的变量,具体语句如下:
declare @g geometry
select @g=streetgeo from streets where streetnam='street1'
select @g.stastext()
go


4.获取geometry 实例中包含的点
(1)获取geometry 实例中包含的点数
使用STNumPoints()函数可以获得geometry实例中包含的点数。例如:
declare @g geometry
select @g=streetgeo from streets where streetnam='street1'
select @g.STNumPoints()
go

(2)获取geometry 实例中包含的点
declare @g geometry
select @g=streetgeo from streets where streetnam='street1'
select @g.STPointN(2).Tostring()
go

(3)获取起始点和终点
declare @g geometry
select @g=streetgeo from streets where streetnam='street1'
select @g.STStartPoint().ToString() as 起始点,@g.STEndPoint().ToString() as 终点
go

(4)获取多边形的中心点
declare @g geometry
set @g=geometry::STGeomFromText('POLYGON(0 0,0 2, 2 2,0 2, 0 0))',0);
select @g.STCentroid().Tostring();

5.获取geometry实例的维度信息
(1)返回对象的维度
使用STDimension()函数可以获取对象的维度信息。
例如:
declare @g geometry;
set @g=geometry::STGeomFromText('POINT(3,4)',));
select @g.STAsText(),@g.STDimension()
go
结果是:
/*
POINT(3,4),0
*/

(2)计算对象的长度
使用STLength()函数可以计算一维或二维对象的长度。例如:
declare @g geometry
select @g=streetgeo from streets where streetnam='street1'
select @g.STLength()
go

(3)计算对象的面积
使用STArea()函数可以计算二维对象的面积。例如:
declare @g geometry
set @g=geometr::STGeomFromText('POLYGON((0 0,2 0, 2 2,0 2,0 0))',0);
select @g.STArea()

6.检查是否为空
在使用geometry实例之前,需要判断是否为空,可以使用STlsEmpty()函数实现此功能,当geometry实例为空时,则返回1,否则返回0
declare @g geometry;
set @g=geometry::STGeomFromText('POLYGON EMPTY',0);
select @g STlsEmpty();
set @g=geometry::STGeomFromText('POLYGON((0 0,2 0, 2 2,0 2,0 0))',0);
select @g STlsEmpty();
返回结果为1和0

7.判断geometry实例是否为简单
满足下面条件的geometry实例子=被称为简单的geometry实例
(1)实例中任何一个图形都不与自身相交,但其终点除外。
(2)实例上任意两个图形可以在某个点相交,但两个边界上的点除外。
当geometry 实例为简单实例时,返回1,否则返回0
例如:
declare @g geometry;
set @g=geometry::STGeomFromText('LINESTRING(0 0,2 2,0 2,2 0)',0);
select @g.STlsSimple();
结果为1
declare @g geometry;
set @g=geometry::STGeomFromText('LINESTRING(0 0,0 2,2 2,2 0)',0);
select @g.STlsSimple();
结果为0

8.返回geometry实例的边界
除Point和MultiPoint实例外,其他geometry实例都存在边界.使用STBoundary()函数可以返回geometry实例的边界
下面是在LineString实例上应用STBoundary()函数的实例。
declare @g geometry;
set @g=geometry::STGeomFromText('LINESTRING(1 1,2 2,0 2,2 1)',0);
select @g.STBoundary().Tostring();
返回结果为Multipoint((2,1),(1,1)),即LineString实例的起点和终点.
Polygon和MultiPolygon实例的边界值为Multipoint 实例。下面是Polygon应用STBoundary()函数的实例。
declare @g geometry;
set @g=geometry::STGeomFromText('POLYGON((0 0,0 3,3 3,3 0,0 0)(1 1,1 2, 2 1,1 1))',10);
select @g.STBoundary().Tostring();
返回结果为Multilinestring((1 1,1 2,2 1,1 1),(0 0 ,3 0 , 3 3, 0 3,0 0)),即Polygon的环。

---这次先写这么多,太多了,下次再写
昵称被占用了 2011-03-24
  • 打赏
  • 举报
回复
sql server2008专门有用于地理信息的数据类型,没仔细研究过
理解地理信息系统空间数据库 一、空间数据库的概念 1. 数据库的相关概念 数据库:是指长期储存在计算机内有结构的、大量的 、可共享的数据集合。 数据库管理系统:是位于用户与操作系统之间的一层 数据管理软件;他的功能包括:数据定义,数据操作, 数据库的运行管理,数据库的建立和维护。 数据库系统:指在计算机系统中引入数据库后的系统 ,它由数据库数据库管理系统及其开发工具、应用系 统、数据库管理员和用户构成。 数据库系统管理员:负责数据库的建立、使用和维护 的专门人员。 2.空间数据库的相关概念 空间数据库:是地理信息系统在计算机物理存储介质存 储的与应用相关的地理空间数据的总合,以一系列特定 结构的文件形式组织后存储在介质上。 空间数据库(系统)组成: Ø空间数据库:是地理信息系统在计算机物理存储介质 存储的与应用相关的地理空间数据的总合,一般是以一 系列特定结构的文件形式组织后存储在介质上。 Ø空间数据库管理系统:是指能够对物理介质上存储的 地理空间数据进行语义和逻辑上的定义,提供必需的空 间数据查询检索和存取功能,以及能够对空间数据进行 有效的维护和更新的一套软件。 Ø数据库应用系统:应用模块。 1 理解地理信息系统空间数据库全文共9页,当前为第1页。 3、空间数据库管理系统的实现方法 空间数据库管理系统是建立在常规数据库管理系统的基 础上,实现对空间数据的管理功能。 v常规数据库管理系统扩展:直接对常规数据库管理系 统进行扩展,加入一定数量的空间数据存储与管理功能 。 例如:Oracle v空间数据库引擎(SDE: Spatial Database Engine):在常规数据库管理系统上加一层空间数据库 引擎,实现空间数据的存储与管理。 例如:ESRI的SDE 二、 空间数据库的设计 1.空间数据库的设计过程 就是将地理空间客体按一定的组织形式,在数据库系统 中加以表达的过程。 这一过程一般需要两步 人类对客体的认识、抽象,建立概念模型。 将概念模型转换为计算机能够接受的形式,即数据模 型。 2.空间数据库的数据模型设计 数据模型建立的目的 2 理解地理信息系统空间数据库全文共9页,当前为第2页。 揭示空间实体的本质特征,并对其进行抽象化,使之转 化为计算机能够接受和处理的数据形式。 v能够对空间数据进行统一管理 v帮助用户查询、检索、增加删除和修改数据 v保障空间数据的独立性、完整性、和安全性 3. 空间数据库设计的原则、步骤和技术方法 设计原则: 尽量减少空间数据存储冗余; 提供稳定的空间数据结构,在用户的需要改变时 ,数据结构能够做出相应的变化; 满足用户对空间数据及时访问的需求,高效提供 用户所需的空间数据查询结果; 在空间元素间维持复杂的联系,反映空间数据的 复杂性; 支持多种决策需要,具有较强的应用适应性。 3 理解地理信息系统空间数据库全文共9页,当前为第3页。 4 理解地理信息系统空间数据库全文共9页,当前为第4页。 5 理解地理信息系统空间数据库全文共9页,当前为第5页。 6 理解地理信息系统空间数据库全文共9页,当前为第6页。 7 理解地理信息系统空间数据库全文共9页,当前为第7页。 8 理解地理信息系统空间数据库全文共9页,当前为第8页。 9 理解地理信息系统空间数据库全文共9页,当前为第9页。
浅谈数据库地理信息系统 针对目前市场上对数据库系统及GIS的认识,笔者通过对数据库系统、GIS的概念,阐 述两者之间的关系以及发展方向,阐明目前大家对数字化概念的认识及要求,与建库、 GIS的区别,从数字图到建库、GIS还有大量的工作,根据经济发展不平衡,不可攀比, 因地制宜,应时制宜,达到化少钱办实事的效果。未来信息化的发展,将超出人们的想 象,立足眼前,展望未来,"数字地球"、"数字区域"、"数字城市"是总的方向。按权威 人士的理论提出发展方向。 标签 数据库系统;GIS;信息化进程;发展方向 随着科学技术的迅猛发展,测绘已从模拟到数字;从静态到动态;从传统的"三仪"( 水准仪、经纬仪、平板仪)到今天的"3S"(GPS、GIS、RS)已是一场革命,在短短的几 年中,已发生了质的飞跃。特别是地理信息系统(GeographicalInformatiamSystem,G IS以简称GIS) ,有了快速发展,并被相关行业和政府部门所认识。GIS是集计算机科学、地理科学、测 绘学、遥感学、环境学、空间科学、信息科学、管理科学等多门学科为一体的新兴科学 。步入21世纪以来,GIS正向集体化、产业化和社会化方向迈进,得到了前所未有的发展 ,在科技界、企业界推广应用,提高了人类处理和分析有关地球、社会与经济的动力。 由于谈及GIS,必然引出数据库的概念,它是信息系统基本且重要的组成部分。下面从概 念、关系、现状、发展几方面讨论。 1 概念 地理信息:指地理环境固有要素或物质的数量、质量、分布特征、联系和规律等文字 、数字、图像和图形的总称。从地理实体到地理数据再到地理信息的发展,反映了人类 从认识物质到认识信息有了巨大飞跃。地理信息系统(GIS):据有关资料表明,世界各 国学者对此有不同的理解或叫法,但我国大体认同的是美国联邦数字地图协调委员会( FIC- CDC)关于GIS的定义;GIS是由计算机硬件、软件和不同的方法组成的系统,该系统设计 支持空间数据的采集、管理、处理、分析、建模和显示,以便解决复杂的规划和管理问 题。 GIS技术系统是由若干个互相关联的子系统构成,如数据采集系统、数据管理系统、 数据处理和分析系统。可视化表述与输出子系统。构成直接影响或决定GIS的硬件平台、 系统功能和效率、数据处理的方式和产品输出的类型。GIS是人类认识客观世界,改造世 界的工具,GIS从开发到应用需要经历一个由现实世界到总结、建模的概念世界,再转向 计算机数据信息的转化过程。 数据库系统:简称数据库,应包括 数据库,即按照一定的结构组织在一起的相关数 据的集合; 数据库管理系统(DatabaseManagementSystemDBMS):即提供数据库建立、 使用和管理工具的软件系统; 数据库应用系统:即为了满足特定的用户数据处理需求而 建立起来的,具有数据库访问功能的应用软件。 延伸空间数据库系统同样有三部分组成: 空间数据库:是地理信息系统在计算机物 理存储介质上存储与应用相关的地理空间数据的总和; 空间数据库管理系统:是能够对 物理介质上存储的地理空间数据进行定义和逻辑上的定义,按必须的空间数据库查询检 索和存取功能,以及能够对空间数据进行有效的维护和更新的一套软件系统; 空间数据 库应用系统,是空间分析模型和应用模型所组成的软件系统。 所以,数据库系统在GIS中有极其重要的地位,是GIS在应用中发挥作用的关键。 2 GIS与数据库的关系 研究GIS必须涉及到数据(data)和信息(Informatiam)两个术语,用科学的观点分 析两者之间有词义上的差别,数据是信息的表达,而信息则是数据的内容。数据是未经 加工的原始材料,是通过数字的方式记录下来的可以鉴别的符号,不仅数字是数据、文 字、符号和图像,也是数据,而数据本身及有意义,可以独立存在,如数字"1",可以是 一个单位、一个人、一个单元货币,可以离开GIS而独立存在,也可以和任何单位名称相 搭配,数据是客观对象的表示。在GIS中,数据的格式往往和计算机系统有关,随着物理 的概念而改变。数据必须经过收集、筛选、排序、归纳、转换、存储、检索、计算以及 分析、模拟和预算等过程,从而达到把数据转换成以便于观察、分析、传输或进一步处 理的形式;把数据加工成对正确管理和决策有用的数据;把数据编辑后存储起来以供使 用的目的。 信息是对数据库的理解,运用与解算,经过处理、编辑以后的数据,需要经过解释才 有意义,才成为信息。信息来自数据,并具有四大特性: 客观性:任何信息都是与客观 事实紧密相关的,这也是正确性和精确度的保证; 适用性:信息对决策是十分重要的, 信息系统将地理空间的巨大数据收集、组织和管理,经过处理、转换和分析变为对生产 、管理和决策都是有着十分重要的意义; 传输性:信息可以在信息发送

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧