почему мои добавленные слои не отображаются в листовке. ajax. js - PullRequest
0 голосов
/ 05 августа 2020

Я разрабатываю приложение для веб-карты, используя 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'),]

1 Ответ

0 голосов
/ 10 августа 2020

Я использовал версию 2.7 Django и, к счастью, добавленные слои могли отображаться

...