Я работаю над Android-приложением, которое должно взаимодействовать с сервером для хранения/извлечения моделей в базе данных. Модели имеют два параметра широты и долготы, которые FloatPropertyTypeError при использовании cos/sin на FloatProperty
class Model(ndb.Model):
latitude = ndb.FloatProperty()
longitude = ndb.FloatProperty()
Теперь у меня есть обработчик запроса, когда он получает запрос GET с определенным флагом и долготы и широты параметров, он должен запросить базу данных, чтобы найти все модели, которые находятся на определенном расстоянии.
То, что я сделал это
latitude = float(self.request.get('latitude'))
longitude = float(self.request.get('longitude'))
max_fetch = 20
...
sin_lat = math.sin(latitude)
cos_lat = math.cos(latitude)
R = 6371 * math.pow(10, 3)
max_distance = 1000
around_you = Model.query(math.acos(sin_lat*math.sin(Model.latitude) +
cos_lat*math.cos(Model.latitude)*math.cos(longitude - Model.longitude)) *
R <= max_distance).fetch(max_fetch)
Но делать это дает мне
TypeError: a float is required
Когда я пытаюсь сделать
math.sin(Model.latitude)
Любой намек о том, как это исправить?
Что делать, если вы использовали 'math.sin (широта)' вместо 'math.sin (Model.latitude)'? – Kevin
Этот тип запроса невозможен с хранилищем данных – Greg