Bing Maps开发扩展二:基于Oracle Spatial的空间数据分析

上一篇文章《
Bing Maps开发扩展一:Oracle Spatial的空间数据渲染

》中介绍了如何渲染Oracle数据库中的空间数据,Oracle中的空间数据出了可以做基本的图形化界面渲染,我们也可以基于这些数据做一定的空间分析,比如我们想去吃饭,那么在一定地理空间范围内是否有餐厅呢?这种场景我们就可以利用Oracle的空间数据分析来实现。

要使用Oracle的空间分析,需要完成很多的前置条件,如下:

1、注册元数据

注册元数据实际上就是想系统表USER_SDO_GEOM_METADATA 中插入一条数据,标记某某表的某某字段需要进行注册。

INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)
VALUES (‘表名’, ‘字段名’,
SDO_DIM_ARRAY
(SDO_DIM_ELEMENT(‘Longitude ‘, -180.0, 180.0, 0.5),
SDO_DIM_ELEMENT(‘Latitude ‘, -90.0, 90.0, 0.5)),
8307);

2、创建空间索引

create index 索引名 on 表名 (空间字段名) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

3、使用Oracle内置函数实现空间分析查询

Oracle内置提供很多的空间分析函数,这里就不一一介绍,通过一个小示例简单介绍其中一个函数的使用方法。

例:查询出指定坐标(121.497081,31.239569)附近100米范围内所有的地名数据。

SELECT * FROM GeoInfo n
WHERE SDO_WITHIN_DISTANCE(n.location,
SDO_GEOMETRY(2001,
8307,
SDO_POINT_TYPE(121.497081,31.239569,0),
NULL,
NULL),
‘DISTANCE=100 UNIT=meter ‘) = ‘TRUE ‘

通过SQL语句利用Oracle内置函数即可分析出想要的空间数据,将空间数据转化为WKT格式数据使用WCF发布供BingMap客户端调用即可。客户端得到了空间分析结果的数据,要在地图上做渲染呈现,可沿用《
Bing Maps开发扩展一:Oracle Spatial的空间数据渲染

》里面的实现方式。

相关资源

[1]、NetTopologySuite:http://code.google.com/p/nettopologysuite

[2]、WKT:http://www.opengis.org/techno/specs.htm

[3]、
【Silverlight】Bing Maps系列文章汇总

相关说明

本文属学习笔记文章,愿与有志者共同学习交流。欢迎转载,为了保存作者的创作热情,但请在明显地位标记本文的原文连接。

作 者:Beniao

文章出处:http://beniao.cnblogs.com/http://www.cnblogs.com/

Original: https://www.cnblogs.com/beniao/archive/2012/10/10/2260891.html
Author: Bēniaǒ
Title: Bing Maps开发扩展二:基于Oracle Spatial的空间数据分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/8397/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部