我不是以英语为母语,所以请不要介意犯错误;)导入GeoJSON的数据单张地图从立交桥涡轮origanated
我想打一个地图,你可以找到农家店和牛奶自动售货机为那些想要支持当地农民的人提供机器。我发现这些东西可以在标签shop=farm
和amenity=vending_machine selling:milk
的OSM数据中找到。有了这些信息,您可以轻松地在http://overpass-turbo.eu上创建查询并将其导出为JSON文件。我使用“osmtogeojson”将此数据转换为GeoJSON,并在我的主文件夹中存储了一个小测试样本“test.geojson”。我也 下载leaflet.ajax.min.js
并把它放在我的主文件夹。现在我想将这个本地GeoJSON文件导入到Leaflet地图中。因此,这里是我的情况:
我的头区域看起来是这样的:(几乎一切从教程上leafletjs.com和堆栈溢出复印件)
<link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />
<script src="/leaflet.ajax.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-07I2e+7D8p6he1SIM+1twR5TIrhUQn9+I6yjqD53JQjFiMf8EtC93ty0/5vJTZGF8aAocvHYNEDJajGdNx1IsQ==" crossorigin=""/>
<script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-A7vV8IFfih/D732iSSKi20u/ooOfj/AGehOKq0f4vLT1Zr2Y+RX7C+w8A1gaSasGtRUZpF/NZgzSAu4/Gc41Lg==" crossorigin=""></script>
的,这是(的重要组成部分)JavaScript的:
var geojsonLayer = new L.GeoJSON.AJAX("test.geojson");
geojsonLayer.addTo(map);
编辑:这里是现场演示:https://stefang.cepheus.uberspace.de/farmshops/ 你可以找到我的/test.geojson文件有太多。
有人知道这里出了什么问题吗?
少重要JS部分(从意见进口代OP的):
var mymap = L.map('mapid').setView([49.013, 8.40], 10);
L.tileLayer('api.tiles.mapbox.com/v4{id}/{z}/{x}/{y}.png?access_token=<TOKEN>', {
maxZoom: 18,
attribution: 'Map data © <a href="openstreetmap.org">OpenStreetMap</a>; contributors, ' + '<a href="creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</…;, ' + 'Imagery © <a href="mapbox.com">Mapbox</a>';,
id: 'mapbox.streets'
}).addTo(mymap);
欢迎来到SO!当你说“没有错误”时,你的意思是你检查了你的浏览器控制台吗?你的脚本加载顺序很奇怪。 – ghybs
谢谢,这很有帮助。我必须说不,我没有。我认为每个错误都会导致错误对话框。但浏览器控制台帮助了我很多,我想我必须首先使用这个对象。错误是: TypeError:geojsonLayer未定义 – Stefan
我承认我之前会预料到另一个错误:“L未定义”或类似的东西,因为在Leaflet之前加载Leaflet.ajax插件? – ghybs