首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MemSql GEOGRAPHY_DISTANCE,GEOGRAPHY_CONTAINS,GEOGRAPHY_WITHIN_DISTANCE不工作,并返回null

MemSql GEOGRAPHY_DISTANCE,GEOGRAPHY_CONTAINS,GEOGRAPHY_WITHIN_DISTANCE不工作,并返回null
EN

Stack Overflow用户
提问于 2019-02-07 08:50:07
回答 1查看 174关注 0票数 0

它不是返回任何数字,而是返回null。

代码语言:javascript
复制
SELECT round(GEOGRAPHY_DISTANCE("GEOGRAPHY_POINT(-97.741890, 30.219940)", "POLYGON ((-97.11090087890626 33.08693925905123,-96.52862548828126 33.063924198120645,-96.56158447265626 32.80343616698929,-97.06970214843751 32.778037985363675,-97.11090087890626 33.08693925905123))"),0) FROM DUAL;

SELECT GEOGRAPHY_WITHIN_DISTANCE("GEOGRAPHY_POINT(96.843820, 32.926290)","POLYGON ((-97.11090087890626 33.08693925905123,-96.52862548828126 33.063924198120645,-96.56158447265626 32.80343616698929,-97.06970214843751 32.778037985363675,-97.11090087890626 33.08693925905123))",1000) from dual;

有谁能帮忙使memsql地理空间函数发挥作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 16:16:15

在上面对Damien_ the _Unbeliever的答案进行扩展时,GEOGRAPHY_POINT语法不应该在字符串中。您可以用WKT语法POINT(long lat)定义字符串中的点,也可以使用GEOGRAPHY_POINT语法(但不是在字符串中)。

因此,对于第一个不起作用的查询:

代码语言:javascript
复制
memsql> SELECT round(GEOGRAPHY_DISTANCE("GEOGRAPHY_POINT(-97.741890, 30.219940)", "POLYGON ((-97.11090087890626 33.08693925905123,-96.52862548828126 33.063924198120645,-96.56158447265626 32.80343616698929,-97.06970214843751 32.778037985363675,-97.11090087890626 33.08693925905123))"),0) FROM DUAL;
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| round(GEOGRAPHY_DISTANCE("GEOGRAPHY_POINT(-97.741890, 30.219940)", "POLYGON ((-97.11090087890626 33.08693925905123,-96.52862548828126 33.063924198120645,-96.56158447265626 32.80343616698929,-97.06970214843751 32.778037985363675,-97.11090087890626 33.086939 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                                                                                                                                                                             NULL |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set, 1 warning (0.39 sec)

memsql> show warnings;
+---------+------+----------------------------------------------------+
| Level   | Code | Message                                            |
+---------+------+----------------------------------------------------+
| Warning | 1862 | You have an error in your WKT syntax at position 0 |
+---------+------+----------------------------------------------------+
1 row in set (0.00 sec)

您可以正确地将它写成这两种中的任何一种:

代码语言:javascript
复制
memsql> SELECT round(GEOGRAPHY_DISTANCE("POINT(-97.741890 30.219940)", "POLYGON ((-97.11090087890626 33.08693925905123,-96.52862548828126 33.063924198120645,-96.56158447265626 32.80343616698929,-97.06970214843751 32.778037985363675,-97.11090087890626 33.08693925905123))"),0) FROM DUAL;
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| round(GEOGRAPHY_DISTANCE("POINT(-97.741890 30.219940)", "POLYGON ((-97.11090087890626 33.08693925905123,-96.52862548828126 33.063924198120645,-96.56158447265626 32.80343616698929,-97.06970214843751 32.778037985363675,-97.11090087890626 33.08693925905123))" |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                                                                                                                                                                           291334 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.31 sec)

memsql> SELECT round(GEOGRAPHY_DISTANCE(GEOGRAPHY_POINT(-97.741890, 30.219940), "POLYGON ((-97.11090087890626 33.08693925905123,-96.52862548828126 33.063924198120645,-96.56158447265626 32.80343616698929,-97.06970214843751 32.778037985363675,-97.11090087890626 33.08693925905123))"),0) FROM DUAL;
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| round(GEOGRAPHY_DISTANCE(GEOGRAPHY_POINT(-97.741890, 30.219940), "POLYGON ((-97.11090087890626 33.08693925905123,-96.52862548828126 33.063924198120645,-96.56158447265626 32.80343616698929,-97.06970214843751 32.778037985363675,-97.11090087890626 33.08693925 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                                                                                                                                                                           291334 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.54 sec)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54569449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档