0

ご挨拶。

このトピックに関するいくつかの投稿と回答を見てきましたが、与えられた結果は実際には正確ではないかもしれません.

MySQL空間テーブルに、経度と緯度の異なるポイントを持つ行があるとしましょう。単純な SELECT クエリを使用して、それらの間の距離を取得したいだけです。私が試してみました:

GLENGTH(
        LINESTRINGFROMWKB(
            LINESTRING(
                GEOMFROMTEXT(
                    ASTEXT(
                        POINTFROMWKB(
                            POINT( X(user_location) , Y(user_location))))),
                GEOMFROMTEXT(
                    ASTEXT(
                        POINTFROMWKB(
                            POINT( $latitude, $longitude )))))))*100

私はそのような「醜い」ことを知っています.結果がキロメーターで与えられていないことを残念に思います.

どうすればいいですか?どうもありがとう。

4

1 に答える 1

3

使用している方法では、正確な結果が得られません。GLENGTHは単純なデカルト距離の式を使用しているためです。GLENGTHのMySQLページのコメントで、球形のサーフェスでは使用できないことも読むことができます。デカルト平面にあります。

このStackoverflowの回答には、変更された式があり、それを使用する方法が明確に説明されています。それを見てください。目的に合わせて変更する必要があります。しかし、それは間違いなくどのように進めるかについてあなたを導きます。

それが役に立てば幸い...

于 2012-09-27T17:26:17.850 に答える