• 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.0180.00.5),
         SDO_DIM_ELEMENT('Latitude'-90.090.00.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的空间数据渲染》里面的实现方式。
     
     
                                           
     
    相关资源
     
    相关说明

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


    作      者:Beniao


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

  • 相关阅读:
    Rust语言学习笔记(11)
    Rust语言学习笔记(10)
    Rust语言学习笔记(9)
    Rust语言学习笔记(8)
    趣味编程:静夜思(Rust版)
    Python sorted()
    Python 魔法方法
    Python filter()
    Python的map和reduce
    Python函数的参数
  • 原文地址:https://www.cnblogs.com/beniao/p/2260891.html
Copyright © 2020-2023  润新知