【问题标题】:HANA Spatial: Query by Circle (Center and Radius)HANA 空间:按圆查询(中心和半径)
【发布时间】:2016-10-04 14:19:37
【问题描述】:

使用SAP HANA Spatial,如何查询一个圆内包含的所有点?理想情况下,我想指定中心的纬度和经度,以及半径。

例如,选择 'Berlin - Alexanderplatz' (52.5219184 13.4132147) 周围 10 公里半径内的所有地标。

PS。尝试一下:

  1. https://account.hanatrial.ondemand.com 上注册一个帐户并登录。
  2. 创建数据库:在 Persistence 下打开 Databases & Systems。点击New,输入一个Database ID,选择HANA MDC ()作为Database System,输入一个SYSTEM 用户密码,然后保存。
  3. 打开开发工具:在您的数据库概览中,单击SAP HANA 基于 Web 的开发工作台并使用 SYSTEM 用户登录。在 Security 下,将应用程序权限 sap.hana.ide::Catalog 授予用户 SYSTEM。 (是的,我知道,不要在现实生活中这样做!)。打开目录
  4. 创建数据库表:点击按钮打开SQL控制台(Command-Alt-C),输入以下SQL代码并点击运行(F8)按钮。

    CREATE COLUMN TABLE "COORDINATES" ("LOCATION_NAME" VARCHAR(100), "COORDINATE" ST_POINT(0) CS_POINT);
    INSERT INTO "COORDINATES" VALUES ('Berlin - Brandenburger Tor', NEW ST_Point('POINT(52.5162746 13.377704)'));
    INSERT INTO "COORDINATES" VALUES ('Berlin - Gendarmenmarkt', NEW ST_Point('POINT(52.5137224 13.3926698)'));
    INSERT INTO "COORDINATES" VALUES ('Paris - Tour Eiffel', NEW ST_Point('POINT(48.8583701 2.2944813)'));
    
  5. 要按矩形查询,请触发以下语句。

    SELECT LOCATION_NAME, COORDINATE.ST_ASGEOJSON() FROM COORDINATES WHERE (NEW ST_Polygon('Polygon((52 13, 52 14, 53 14, 53 13, 52 13))').ST_Contains(COORDINATE)) = 1;
    
  6. 但是,请记住,我需要一个圆圈!如何检索相同的结果?

【问题讨论】:

    标签: sap spatial hana


    【解决方案1】:

    难道不是你的圆心点和你的对象之间的距离需要小于半径吗? 类似的东西

    SELECT LOCATION_NAME, COORDINATE.ST_ASGEOJSON() 
    FROM COORDINATES 
    WHERE 
    COORDINATE.ST_Distance( NEW ST_Point('POINT(52.5162746 13.377704)')) <= 2;
    

    这里我只是放了勃兰登堡门的坐标和半径 2 - 但你应该得到图片。

    【讨论】:

      猜你喜欢
      • 2020-10-25
      • 2013-12-15
      • 1970-01-01
      • 2021-04-14
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      相关资源
      最近更新 更多