Хороший способ узнать геолокацию Django?- Джанго / Геолокация - PullRequest
2 голосов
/ 27 октября 2010

Я хотел бы иметь возможность связать различные модели (места, места, достопримечательности) с городом / страной.

Но я не уверен, какими будут хорошие способы реализации этого.


Я следую по простому маршруту, я реализовал модель Страны и Города.

Когда упоминается новый город или страна, он создается автоматически.

К сожалению, у меня есть различные проблемы:

  • База данных может быть легко загрязнена

  • Джанго не знает, что на самом деле представляют эти города / страны


Какие-нибудь советы или идеи? Спасибо! :)

Ответы [ 2 ]

7 голосов
/ 27 октября 2010

Хорошей отправной точкой будет получение набора данных о местоположении от службы, такой как Geonames . Существует также GeoDjango , который возник в этом вопросе . По мере появления новых имен местоположений сверяйте их с большим набором данных, прежде чем добавлять их. Что касается вашего второго пункта, вам нужно спроектировать его в своей объектной модели и соответствующим образом написать свой код.

Вот еще несколько вещей, которые вы можете рассмотреть:

  • Псевдонимы и сокращения
    • Они подходят больше, чем вы думаете. Люди часто используют названия пригородов или кварталов, которые не являются официальными городами. Вы также можете рассмотреть такие, как LA -> Лос-Анджелес MTL для Монреаля, MT. Лес -> Гора Лес, Святой против (ST ул. ST-) и т. Д.
  • Нечеткий поиск
    • Поиск названий городов намного проще, если учесть различия в правописании. Это также помогает уменьшить количество повторяющихся имен для одного и того же места.
    • Это можно сделать, предварительно рассчитав значения Soundex или Double Metaphone для городов в вашем наборе данных. Выполняя поиск, вычислите значение для поискового термина и сравните с предварительно вычисленными значениями. Это лучше всего подойдет для английского языка, но вы можете добиться успеха с другими производными романского языка (не знаете, какие у вас есть варианты).
  • Расположение Эквивалентность / Включение
    • Уметь определить, что Бруклин - это район Нью-Йорка.

В конце концов, это сложная проблема, но применение этих предложений должно значительно уменьшить количество повреждений данных и других проблем, с которыми вам приходится сталкиваться.

0 голосов
/ 28 октября 2010

Геокодирование наборов данных от Yahoo и Google может быть хорошим начальным занятием. Также посмотрите на библиотеку геопий в django

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...