为什么 leaflet.ajax.js 不显示我添加的图层
why my added layers are not displayed by leaflet.ajax.js
我正在使用 django、leaflet 和 postgis 开发一个网络地图应用程序。我的网络应用程序可以将 OSM(openstreetmap)显示为背景地图,但我添加的图层(来自 QGIS)和点数据模型(在 geodjango 中构建)无法显示在网络应用程序中。请帮帮我。 [当然我可以在我添加的图层中看到文本格式(如json)如下:
https://i.stack.imgur.com/qYnWe.jpg
index.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'),]
我用的是Django 2.7版本,幸好可以显示添加的图层
我正在使用 django、leaflet 和 postgis 开发一个网络地图应用程序。我的网络应用程序可以将 OSM(openstreetmap)显示为背景地图,但我添加的图层(来自 QGIS)和点数据模型(在 geodjango 中构建)无法显示在网络应用程序中。请帮帮我。 [当然我可以在我添加的图层中看到文本格式(如json)如下:
https://i.stack.imgur.com/qYnWe.jpg
index.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'),]
我用的是Django 2.7版本,幸好可以显示添加的图层