我不是以英語爲母語,所以請不要介意犯錯誤;)導入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