Sử dụng GeoDjango


9

Chúng tôi đang tạo một trang web hiển thị dữ liệu địa lý trên bản đồ (hiện đang sử dụng API js của Google Maps). Chúng tôi hiện đang sử dụng postgres + postGIS + php. Tôi đã khuyên bạn nên tìm hiểu về cách sử dụng GeoDjango. Tôi gặp khó khăn khi xác định chức năng địa lý bổ sung mà GeoDjango cung cấp ở trên những gì đã có trong postGIS (ví dụ: điểm, linestrings, đa giác, tính toán khoảng cách, tính toán khu vực, "trong logic", v.v.).

GeoDjango có cung cấp chức năng bổ sung hay mục đích của nó là đơn giản hóa việc sử dụng chức năng địa lý hiện có?

Cảm ơn!

Câu trả lời:


11

GeoDjango cũng cung cấp rất nhiều tính năng vượt trội, giá trị gia tăng.

  • Trang web quản trị được kích hoạt không gian địa lý: Đây là một trong những tính năng yêu thích của tôi về Django nói chung. Django tự động tạo ra các trang quản trị tìm kiếm khá đẹp. GeoDjango tiến thêm một bước này và cung cấp cho bạn một cách để dễ dàng xem và chỉnh sửa dữ liệu không gian địa lý bằng bản đồ Openlayers.
  • Nguồn cấp dữ liệu GeoRSS / GeoAtom: Tạo nguồn cấp dữ liệu GeoRSS / GeoAtom tương đối dễ dàng.
  • Hỗ trợ KML / GML / GeoJSON: GeoDjango hỗ trợ tuần tự hóa KML, GML và GeoJSON. Mặc dù từ chối trách nhiệm, tôi đã thực hiện một vài API REST với Django và thấy rằng tôi không sử dụng các khả năng tích hợp trong GeoDjango cho việc này.
  • Thư viện của bên thứ ba: OLWidgets là một ví dụ về thư viện của bên thứ ba cho GeoDjango, giúp tạo bản đồ tương tác dễ dàng hơn. Ngoài ra, bạn có quyền truy cập vào rất nhiều thư viện Python. Ví dụ, có một dự án tên là Haystack cung cấp khả năng tìm kiếm toàn văn. Nếu bạn đang sử dụng một chỉ mục tìm kiếm bên ngoài như Solr hoặc ElSTERearch, bạn có thể sử dụng Django để thực hiện tìm kiếm toàn văn bản được kích hoạt theo không gian địa lý. Cá nhân, Elaticsearch là một sự thay thế tuyệt vời cho PostGIS cho các tìm kiếm không gian. Nó không có tất cả các tính năng của Postgis, nhưng hoạt động tốt cho hầu hết các trường hợp sử dụng.
  • Nó làm cho nó thực sự dễ dàng để di chuyển giữa các cơ sở dữ liệu khác nhau. Cá nhân tôi đã sử dụng GeoDjango với Spatialite và Postgis.

Đánh giá chung của tôi là Django và Python tốt hơn nhiều cho việc phát triển web. Tất cả chúng ta đều có thành kiến ​​cá nhân, nhưng Python có một bộ sưu tập lớn các thư viện địa lý và số. Điều này làm cho nó trở thành một lựa chọn tốt nếu bạn cần thực hiện các thuật toán không gian địa lý phức tạp.


3

Đúng. đúng vậy nó nhằm mục đích đơn giản hóa việc sử dụng chức năng địa lý hiện có với các chức năng cơ bản. và nó cung cấp rất nhiều chức năng địa lý với một số cơ sở dữ liệu như hình dưới đây;

không gian

ngoài ra, không khó để có được kết quả thỏa mãn hơn với chức năng một đoạn. mã này cung cấp cho bạn các đối tượng trong bán kính 5 km.

qs = Events.objects.filter(point__distance_lte(pnt, D(km=5)))

Nếu bạn muốn biết thêm thông tin về geodjango, bạn có thể xem câu trả lời của tôi ở đây về cùng một chủ đề.

Tôi hy vọng nó sẽ giúp bạn...


Tôi nghĩ bạn cần một =dấu hiệu:qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Francis Yaconiello
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.