javascript - Leaflet GeoJSON 图层控件在此脚本中不起作用?

标签 javascript leaflet geojson

我最近正在使用Leaflet库,我发现它非常容易工作和学习,教程对于GeoJSON和控制层非常好,但是我没有找到关于使用GeoJASON文件控制层的教程,我写了这个脚本:

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="leaflet.css"/>
  <script src="leaflet-src.js"></script>


<script src="GeoJason/mpios.geojson"type="text/javascript"></script>
<script src="GeoJason/roads.geojson"type="text/javascript"></script>
<script src="GeoJason/city.geojson"type="text/javascript"></script>
<script src="GeoJason/towns.geojson"type="text/javascript"></script> 


<style>
        html, body, #map {
            height: 100%;
        }
</style>
</head>
<body>
<div id="map"></div>
<script type="text/javascript">

  var map = L.map('map').setView([20.990584, -98.65644], 12);

    L.geoJson(mpios).addTo(map);
    L.geoJson(roads).addTo(map);
    L.geoJson(city).addTo(map);
    L.geoJson(towns).addTo(map);


var baseLayers = {
    "roads": roads,
        "mpios": mpios
};


var overlays = {
       "city": city,
        "towns": towns
};

L.control.layers(baseLayers, overlays).addTo(map);
    </script>

</body>
</html>

但是它显示图层并且控制按钮不起作用,谢谢。

最佳答案

您在 baseLayers 和 Overlays 中设置的图层值是您的 geoJSON 要素集,但它们应该是传单图层或对 map 上存在的图层的引用。

您可以通过将 L.geoJson 的返回值设置为如下变量来存储每个 geoJSON 图层的图层引用:

var mpios_l = L.geoJson(mpios).addTo(map);
var roads_l = L.geoJson(roads).addTo(map);
var city_l = L.geoJson(city).addTo(map);
var towns_l = L.geoJson(towns).addTo(map);

然后将这些项目添加到您的控件中。

var baseLayers = {
    "roads": roads_l,
        "mpios": mpios_l
};


var overlays = {
       "city": city_l,
        "towns": towns_l
};

L.control.layers(baseLayers, overlays).addTo(map);

关于javascript - Leaflet GeoJSON 图层控件在此脚本中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19545422/

相关文章:

leaflet - 以最小的带宽提供大型数据集

javascript - 传单:添加指向标记的链接

Python: Bokeh 未按预期生成世界国家 map

javascript - 如何将两个数组组合成一个具有键值对的对象?

javascript - 在 nodejs 服务器端运行传单

javascript - 比较两个对象数组

javascript - 谷歌地图上每个 geojson 的多个信息窗口

postgresql - 将 PostGIS 表 (postgresql) 转换为 GeoJSON

javascript - 如何使用父函数将类附加到表行?

javascript - clearRect 不清除 Canvas