sql >> データベース >  >> RDS >> Sqlserver

sqlserver 2008でGeographyデータ型を使用した2点間の距離?

    緯度と経度が度の形式である場合 (表のように )、次の関数を使用できます:

    CREATE FUNCTION dbo.DictanceKM(@lat1 FLOAT, @lat2 FLOAT, @lon1 FLOAT, @lon2 FLOAT)
    RETURNS FLOAT 
    AS
    BEGIN
    
        RETURN ACOS(SIN(PI()*@lat1/180.0)*SIN(PI()*@lat2/180.0)+COS(PI()*@lat1/180.0)*COS(PI()*@lat2/180.0)*COS(PI()*@lon2/180.0-PI()*@lon1/180.0))*6371
    END
      

    または 地理タイプを主張する場合、使用法は次のとおりです:

    DECLARE @g geography;
    DECLARE @h geography;
    SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
    SET @h = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
    SELECT @g.STDistance(@h);
      


    1. MySQLで重複する日時範囲の合計量

    2. PostgreSQLを使用してRailsでエラー「fe_sendauth:パスワードが提供されていません」を解決するにはどうすればよいですか?

    3. Oracleの最後の行をテーブルに取得する方法

    4. IS NOT NULL変数が設定されている場合、レコードのテストはTRUEを返しません