使用传单ajax将外部geojson文件加载到传单映射中

时间:2016-11-15 11:37:42

标签: ajax leaflet

我正在尝试使用传单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不是构造函数
如果有人能提供帮助,我感激不尽。 谢谢。

3 个答案:

答案 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);