sql >> データベース >  >> Database Tools >> phpMyAdmin

PostGIS地理タイプを取得するためのPHP

    必要なwkb形式ですか?

    select ST_AsWKB('geog') from locations
    

    しかし、なぜ最初にデータを引き出して距離計算を行うのですか?

    / Nicklas

    更新

    わかりました

    クエリで適切な結果が得られない理由がわかりません。私はPHPが苦手です。何らかの理由で結果が正しくないデータ型にプッシュされていると思います。つまり、ST_AsTextから文字列を取得するだけで、それ以上に奇妙なことはありません。

    しかし、距離をとるために、ポイントを引き出すべきではありません。あなたはそれをするために自己参加をします。これは、PostGISを使用し、1つのテーブルでさまざまなジオメトリを比較するときに常に行うことです。

    最初の地域がid=1で、2番目の地域がid =2であるとすると、クエリは次のようになります。

    SELECT ST_Distance(a.the_geog, b.the_geog) as dist 
    from locations a, locations b WHERE a.id=1 and b.id = 2;
    

    id =1のポイントからすべてのポイント(またはそれが何であれ)までの距離が必要な場合は、次のように記述できます。

    SELECT  ST_Distance(a.the_geog, b.the_geog) as dist
    from locations a inner join locations b on a.id != b.id WHERE a.id=1;
    

    など。

    それは非常に効果的です。

    / Nicklas




    1. デフォルトのプレフィックスを使用して、300テーブルのmysqldbから選択します

    2. データベースでのIDの使用

    3. データベースから画像を取得し、すべてをページに表示する

    4. Sql ServerManagementStudioでヘッダーを使用して結果を保存する