2017-03-25 8 views
0

2つの場所の間の距離を座標で計算したいと思います。私はこれを見てきましたquestionとそれはさまざまな言語で実装されています。私はプロローグの初心者なので、そのような操作を行うことができるプロローグ句を誰でも作成できるのは本当に役に立ちます。プロローグ:2つの座標間の距離を計算する

私はこのPythonの関数単純見つけた:

from math import cos, asin, sqrt 
def distance(lat1, lon1, lat2, lon2): 
    p = 0.017453292519943295 
    a = 0.5 - cos((lat2 - lat1) * p)/2 + cos(lat1 * p) * cos(lat2 * p) * (1 - cos((lon2 - lon1) * p))/2 
    return 12742 * asin(sqrt(a)) 

答えて

1

私は述語自分を作ってきました。これは、以下に示すです:

distance(Lat1, Lon1, Lat2, Lon2, Dis):- 
    P is 0.017453292519943295, 
    A is (0.5 - cos((Lat2 - Lat1) * P)/2 + cos(Lat1 * P) * cos(Lat2 * P) * (1 - cos((Lon2 - Lon1) * P))/2), 
    Dis is (12742 * asin(sqrt(A))). 

サンプル座標の実行(23.700042,90.452103)及び(23.767968、90.425657)を、

?- main. 
Distance is: 8.01840452822046 
true. 

プロローグの結果が十分正確であることを示すオンライン座標距離計算機の結果を以下に示します。 Online coordinate distance calculator

関連する問題