Geo Django'yu nasıl kullanacağımı öğreniyorum. Aşağıda görüldüğü gibi, bir kullanıcı kayıtları Ben enlem ve boylam bilgilerini kaydettiğinizde:Geo Django, enlem ve boylamdan şehirler alır
from django.contrib.gis.db import models
from django.contrib.gis.geos import Point
class GeoModel(models.Model):
"""
Abstract model to provide GEO fields.
"""
latitude = models.FloatField(blank=True, null=True, verbose_name='Latitude')
longitude = models.FloatField(blank=True, null=True, verbose_name='Longitude')
location = models.PointField(blank=True, null=True)
class Meta:
abstract = True
def save(self, *args, **kwargs):
if self.latitude and self.longitude:
self.location = Point(float(self.latitude), float(self.longitude))
super(GeoModel, self).save(*args, **kwargs)
Sonraki Ben ** Ben şehir "ad" saklamak istediğiniz city
adlı yeni bir alan eklemek istediğiniz yani Londra uzun dayanır ve verilen lat detayları.
django-cities
adresinde, coğrafi adlardan şehirlerin bir veritabanını kaydettim, ancak bu Python 3 uyumlu değil, bu yüzden benim için bir uyum değil. geopy adlı bir paket gördüm, ancak bu tamamen Geo Django'nun yerini alıyor ve kısıtlamalarla birlikte gelen Google API kullanıyor.
Geo Django ile uğraşmak istiyorum ve bir şekilde uzun ve Lat yönüne göre şehir adını bulmak için bir arama yapmak, böylece seçeneklerim nelerdir? yani ..
- bir Python 3 için çalışmaz http://www.geonames.org/ veri django-şehirler yüklemek için yol ve Django 1.8.x
- bul nasılsa verileri kullanarak bu arama yapmak için Coğrafi Django kullanılır? (bunu yapmak için emin olun)
Bu yaklaşıma doğru yolun üstünde mi? Öyleyse, verileri DB'mden nasıl alabilirim? Sonra şehir adını bulmak için Geo Django kullanarak bir arama yapın mı?
'' geomodel.location'' bu tür bir "PointField" alanı mı? – Prometheus
Evet, bu sizin sorunuzda tanımladığınız modeldir :) – stellasia
Son soru, Şehir modelinde kullanılan '' MultiPolygonField''. bu nasıl görünüyor? Geo Name kullanmaya karar verdim ama bu alana sahip değil http://www.geonames.org/search.html?q=london&country= – Prometheus