Tôi đang học cách sử dụng Geo Django. Khi đăng ký sử dụng tôi lưu vĩ độ và kinh độ thông tin như bên dưới:Geo Django nhận được các thành phố từ vĩ độ và kinh độ
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)
Tiếp theo, tôi muốn thêm một trường mới có tên city
nơi ** Tôi muốn để lưu trữ các thành phố "tên" tức là London dựa dài và chi tiết lat được cung cấp.
Tôi đã xem django-cities
nơi lưu cơ sở dữ liệu của các thành phố từ Tên địa lý, nhưng điều này có vẻ quá mức cần thiết và không tương thích với Python 3 vì vậy không cần thiết cho tôi. Tôi đã thấy một gói có tên là geopy nhưng điều này dường như thay thế hoàn toàn Geo Django và sử dụng API Google đi kèm với các hạn chế.
Tôi muốn gắn bó với Geo Django và bằng cách nào đó, hãy tìm kiếm tên Thành phố dựa trên dài và lat, vì vậy, các tùy chọn của tôi là gì? tức là ..
- Tìm một cách để cài đặt http://www.geonames.org/ dữ liệu django-thành phố không làm việc cho Python 3 và Django 1.8.x
- Bằng cách nào đó sử dụng Geo Django để làm tra cứu này bằng cách sử dụng dữ liệu? (không chắc chắn để làm điều này)
Có đúng cách để tiếp cận điều này không? Nếu vậy làm thế nào để tôi nhận được dữ liệu vào DB của tôi sau đó làm một tra cứu trên nó bằng cách sử dụng Geo Django để tìm tên thành phố?
'' geomodel.location'' loại trường này là '' PointField'' là gì? – Prometheus
Có, đây là mô hình bạn đã xác định trong câu hỏi của bạn :) – stellasia
Câu hỏi cuối cùng để '' MultiPolygonField'' được sử dụng trong mô hình Thành phố. cái này trông như thế nào? Tôi đã quyết định sử dụng Tên địa lý nhưng không có trường http://www.geonames.org/search.html?q=london&country= – Prometheus