ユーザーは2つのスラッグフィールド(緯度、経度)を照会し、次に2つのスラッグフィールドを比較して1.5キロ以内の最寄り距離を見つけて、最も近いセーフティハウスに応じて表示します。たとえば :ユーザーが緯度、そのクエリ内の経度、REST APIの緯度と経度を照会
www.example.com/safeplace/?find=-37.8770,145.0442
を追加するとき、これはここで1.5キロ
内の最も近いsafeplacesが表示されますが、私の関数である。ここ
def distance(lat1, long1, lat2, long2):
R = 6371 # Earth Radius in Km
dLat = math.radians(lat2 - lat1) # Convert Degrees 2 Radians
dLong = math.radians(long2 - long1)
lat1 = math.radians(lat1)
lat2 = math.radians(lat2)
a = math.sin(dLat/2) * math.sin(dLat/2) + math.sin(dLong/2) *
math.sin(dLong/2) * math.cos(lat1) * math.cos(lat2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = R * c
return d
は私のモデルであり、
class Safeplace(models.Model):
establishment = models.CharField(max_length=250)
address = models.CharField(max_length=250)
suburb = models.CharField(max_length=250)
postcode = models.IntegerField()
state = models.CharField(max_length=250)
type = models.CharField(max_length=250)
latitude = models.DecimalField(decimal_places=6,max_digits=10)
longtitude = models.DecimalField(decimal_places=6,max_digits=10)
私のデータベースにforループを実行する方法はありますか?私は現在Django SQLiteに取り組んでいます。 Views.pyでは、残りのapi urlのユーザー入力で距離関数を実装して、最も近い安全地点を見つけてREST APIとして表示する方法はありますか?
を設定する方法を知っていると信じて.yourapi.com/api/safeplace'? – Tushant