我正在尝试使用传单ajax加载外部geojson。 我认为geojson的结构是正确的。这是它的link。 以下是我基于HERE所做的事情:
头脑中的:
<script src="../external/js/leaflet.js"></script>
<script src="../external/js/leaflet.functionaltilelayer.js"></script>
<script src="../external/js/leaflet.ajax.min.js"></script>
在javascript中:
var mymap = L.map('mapid',{ center: new L.LatLng(the_center_splitted[0],the_center_splitted[1]),maxZoom: 17, minZoom:11, zoom: 14}); //creating the map
var gs = new L.TileLayer('../external/maps/qom/gs/gs_{x}_{y}_{z}.jpg', {opacity: 1,scheme: 'TMS'}).addTo(mymap); //loading image layer
var geojsonLayer = new L.GeoJSON.AJAX("../external/map/qom/geojson/qom.geojson");
geojsonLayer.addTo(mymap);
但是没有显示geojson文件,我收到此错误:
ncaught TypeError:L.GeoJSON.AJAX不是构造函数
如果有人能提供帮助,我感激不尽。
谢谢。
答案 0 :(得分:1)
您的代码似乎没问题 - 您导入了
<script src='leaflet-ajax.js'></script>
如果是,请显示您的整个代码!
答案 1 :(得分:0)
通过AJAX导入文件有点棘手。
首先请记住,您提供AJAX()
方法的相对路径应该是您的Geojson文件应该是来自leaflet-ajax脚本文件位置的路径。 (因为它在那里完成了AJAX调用)。
我会推荐一种不同的方法(没有AJAX调用):
您的GeJson文件(将其重命名为gejson.js)应如下所示:
var json = { "type": "FeatureCollection",
"features": [{
...
在您的传单ajax代码之前导入此文件:
<script src="../../geojson.js" type="text/javascript"></script>
这将允许您访问名为json
的变量,然后您可以使用该变量导入图层中的json对象:
var geojsonLayer = L.geoJSON().addTo(mymap);
geojsonLayer.addData(json);
答案 2 :(得分:0)
什么是“functionaltilelayer.js”?在代码片段中,您不需要它。
并且var gs = new L.tileLayer
具有较低的t - 改变它并再次尝试!
<script src="../external/js/leaflet.js"></script>
<script src="../external/js/leaflet.ajax.min.js"></script>
var mymap = L.map('mapid',{ center: new L.LatLng(the_center_splitted[0],the_center_splitted[1]),maxZoom: 17, minZoom:11, zoom: 14}); //creating the map
var gs = new L.TileLayer('../external/maps/qom/gs/gs_{x}_{y}_{z}.jpg', {opacity: 1,tms: true}).addTo(mymap); //loading image layer
var geojsonLayer = new L.GeoJSON.AJAX("../external/map/qom/geojson/qom.geojson");
geojsonLayer.addTo(mymap);