【问题标题】:chosing row with smallest GLength value选择长度值最小的行
【发布时间】:2012-03-26 14:22:37
【问题描述】:

假设我有一个名为 Place 的表,其中包含列:

placeId int not null auto_increment,
latitude double,
longitude double,

它们是什么列并不重要,只要了解一下即可。

现在假设我以某种方式接收到一个点的纬度和经度,我想要实现的是从表 Place 行中选择,其中 GLength 值是最小的。

当我在 mysql 中做这样的事情时很容易:

SET @ls = 'LineString(50.123 23.321,51.567 23.123)';
SELECT GLength(GeomFromText(@ls));

但通常我不知道如何使用变量进行这样的查询(我不擅长 mysql)有什么帮助吗?

我会使用 GLength(..) 的 order 并将结果限制为 1,但是我怎样才能进行这样的迭代呢?

我的目标是通过 Java 和 Hibernate 触发代码作为原生 sql 查询

【问题讨论】:

    标签: mysql geospatial spatial opengis


    【解决方案1】:

    好的,和我的队友一起做的,如果有人想要,这里是选择:

    SELECT GLength(
        linestringfromwkb(
        LineString(
            GeomFromWKB(Point(j.latitude,j.longitude))
        ,GeomFromWKB(Point(51,22))))),j.latitude,j.longitude FROM my_database.place_table j 
    order by 
    GLength(
        linestringfromwkb(
        LineString(
            GeomFromWKB(Point(j.latitude,j.longitude))
        ,GeomFromWKB(Point(51,22))))) asc
    limit 1;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-09
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2023-03-07
      相关资源
      最近更新 更多