Привязанные таблицы данных для карт листовок в django
Я хочу связать карту листания с таблицей данных according с помощью django. Я только что погуглил и не уверен, что использовал правильные слова. В конце я хочу взаимодействовать в первой попытке, так что:
- щелчок на элементе таблицы данных увеличивает масштаб до элемента карты листа и
- границы отображаемых объектов на картах - фильтрует таблицу данных
Для отображения характеристик на карте я использую geojson. Какова наилучшая практика для этого случая использования?
мой обработчик map.js
const attribution = '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
const map = L.map('map', {
center: [52.39886, 13.06566],
zoom: 10
});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: attribution }).addTo(map);
const markers = JSON.parse(document.getElementById('markers-data').textContent);
let feature = L.geoJSON(markers, {
onEachFeature: function (feature, layer) {
if(feature.properties.kategorie == 1){
layer.setStyle({color :'black'});
} else {
}
layer.bindPopup('<strong>Parkname: </strong>'+layer.feature.properties.name.toString() +
'<br /> <strong>Kategorie: </strong>' + layer.feature.properties.kategorie.toString());
}
}).addTo(map)
my views.py
from django.shortcuts import render
import json
import logging
from django.views.generic.base import TemplateView
from django.core.serializers import serialize
from .models import NotusProjekte
from django.db.models import Q
logger = logging.getLogger(__name__)
class MarkersMapView(TemplateView):
"""Markers map view."""
template_name = "map.html"
def get_context_data(self, **kwargs):
"""Return the view context data."""
query = NotusProjekte.objects.using('spatial').filter(Q(kategorie=1) | Q(kategorie=2))
context = super().get_context_data(**kwargs)
context["markers"] = json.loads(serialize("geojson", query))
logger.debug(context["markers"])
return context