Как запросить Django PostGIS / Postgres DB с помощью карты / Leaflet border box view?
Результаты запроса, сделанного с другими полями, заполняются на листочке:
var myMap = L.map("mapid", {zoomControl: false});
L.tileLayer('https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', {maxZoom: 18 }).addTo(myMap); myMap.setView([-34, 151], 12);
var markers = [
{% for journal in queryset %}
L.marker([{{ journal.latitude }}, {{ journal.longitude }}]),
{% endfor %}
]
var group = L.featureGroup(markers).addTo(myMap);
Теперь я хочу, чтобы результаты заполнялись в зависимости от того, куда пользователь помещает пограничную рамку Leaflet, но я в недоумении, как это сделать. Я установил GDAL, преобразовал столбцы long / lat в пространственные столбцы в Postgis с помощью ADD COLUMN geom geometry(Point, 4326) GENERATED ALWAYS AS (ST_SetSRID(ST_MakePoint("longitude", "latitude"), 4326)) STORED
, добавил geom = models.PointField(blank=True, null=True)
в models.py, но потерялся в том, куда двигаться дальше.
Кто-то предложил мне включить это в представление, но я не знаю, как в этом разобраться:
from django.core.serializers import serialize
entries = Entry.objects.all()
data = serialize('geojson', entries, geometry_field='point', fields=('id', 'name',))
Это, кажется, самый авторитетный учебник по этой теме, но я совершенно теряюсь, когда он переходит к представлениям и говорит об общих представлениях на основе классов / представлениях списков / Django Rest Framework. Есть ли где-нибудь более тупое объяснение? Я чувствую себя идиотом
Не знаю, имеет ли значение, но таблица не управляется Django.
Разобрался, хотя решение гораздо сложнее, чем я понял вначале.
Этот учебник, написанный тем же парнем, который сделал это видео, был полезен. Пожалуйста, посмотрите учебник, так как он объясняет лучше, чем я.
Обратите внимание, что здесь неправильно названа переменная, где api_views
должна быть viewsets
. Также я нигде не смог найти информацию об установке библиотеки PostgreSQL C Client library или того, что он устанавливает как libpq5
на Win10, но, похоже, это было ненужным, возможно, потому что она уже может быть установлена вместе с Postgres.