问题描述
遵循传单快速入门指南
https://leafletjs.com/examples/quick-start/
我查询一个world_border,它具有一个几何字段mpoly(国家的外部形状)和一个纬度/经度字段(中心位置),我想在html网站上显示。我已经能够显示显示纬度/经度点。但是,我如何(聪明地)形象化Multipoligon?
将{{world_border.mpoly}}添加到map.html打印:
RID=4326;MULTIPOLYGON (((8.710255 47.696808,8.678595 47.693344,... )))
这是表格的外观(pgAdmin)
SELECT * FROM world_worldborder WHERE name Like '%Germany%';
显示 https://i.stack.imgur.com/wPp6u.png
views.py
from django.contrib.gis.geos import Point
from django.shortcuts import render
from .models import WorldBorder
def map(request):
pnt = Point(9.003889,48.661944)
world_border = WorldBorder.objects.get(mpoly__intersects=pnt)
return render(request,'world/map.html',{'world_border':world_border})
map.html
{% extends 'home/base.html'%}
{% block content %}
<!-- Leaflet -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css"
integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="
crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"
integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew=="
crossorigin=""></script>
<div id="mapid" class="w-100 h-100">
<script>
var zoom = 10;
var lat = {{world_border.lat}}
var lon = {{world_border.lon}}
var mymap = L.map('mapid').setView([lat,lon],zoom);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',{
attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a>',subdomains: ['a','b','c']
}).addTo(mymap);
var marker = L.marker([lat,lon]).addTo(mymap);
</script>
</div>
{% endblock %}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)