Я разрабатываю приложение для веб-карты, используя django, листовку и postgis. Мое веб-приложение могло отображать OSM (openstreetmap) как фоновую карту, но мой добавленный слой (из QGIS) и точечная модель данных (построенная в geo django) не могли отображаться в веб-приложении. пожалуйста, помогите мне. [Конечно, я могу видеть текстовый формат (как json) в моем добавленном слое следующим образом:
https://i.stack.imgur.com/qYnWe.jpg
Код индекса. html :
<!DOCTYPE html>
<html>
{% load static %}
{% load leaflet_tags %}
<head>
{% leaflet_js %}
{% leaflet_css %}
<title>Service Maps for Tourism</title>
<style type="text/css">
#gis {width: 80%; height: 800px;}
</style>
<script type="text/javascript" src= "{% static 'dist/leaflet.ajax.js' %}"> </script>
</head>
<body>
<h1> سامانه نقشه گردشگری</h1>
<br/>
<script type="text/javascript">
function our_layers(map,options){
var datasets = new L.GeoJSON.AJAX("{% url 'name' %}",{
});
datasets.addTo(map);
}
</script>
{% leaflet_map "gis" callback="window.our_Layers" %}
</body>
</html>
Файл views.py выглядит следующим образом:
from django.shortcuts import render
from django.views.generic import TemplateView
from django.core.serializers import serialize
from django.http import HttpResponse
from .models import Provinces
# Create your views here.
class HomePageView(TemplateView):
template_name= 'index.html'
def province_dataSets (request):
provinces= serialize('geojson', Provinces.objects.all())
return HttpResponse(provinces, content_type= 'json')
Файл models.py выглядит следующим образом:
from __future__ import unicode_literals
from django.db import models
from django.contrib.gis.db import models
from django.db.models import Manager
# Create your models here.
class TourismPoints(models.Model):
name= models.CharField(max_length= 50)
location= models.PointField(srid= 4326)
objects= models.Manager()
def __unicode__(self):
return self.name
class Meta:
verbose_name_plural= "Tourism points"
class Provinces(models.Model):
name = models.CharField(max_length=50)
english_name = models.CharField(max_length=40)
geom = models.MultiPolygonField(srid=4326)
def __unicode__(self):
return self.name
class Meta:
verbose_name_plural= "Provinces"
urls.py выглядит следующим образом:
from django.conf.urls import include, url
from .views import HomePageView, province_dataSets
from django.urls import path
urlpatterns = [
path ('', HomePageView.as_view (), name='home'),
path('province_data/', province_dataSets, name='name'),]