传单 - 地图图层未加载

Scott_McAlister

我正在尝试创建一个 choropleth,根据 2010 年的案例率对状态进行着色。我收到错误:Uncaught TypeError: Cannot read property 'features' of null at Object.t.choropleth.n.exports [as choropleth] . 这是从geojson读取和提取数据的问题吗?

var myMap = L.map('map', {
	center: [39.8283, -98.5795],
	zoom: 11
});

APIKEY = "pk.eyJ1Ijoic2NvdHRtY2FsaXN0ZXIxMyIsImEiOiJjamlhdWd2bzMxYjU1M3Ztcm54N2kxaDQ2In0.mGtR6lttrtiEpIqHVEIAtQ"

L.tileLayer("https://api.mapbox.com/styles/v1/mapbox/outdoors-v10/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1Ijoic2NvdHRtY2FsaXN0ZXIxMyIsImEiOiJjamlhdWd2bzMxYjU1M3Ztcm54N2kxaDQ2In0.mGtR6lttrtiEpIqHVEIAtQ").addTo(myMap)



var GEOLINK = "state_data_modified.geojson";

var geojson_0;

d3.json(GEOLINK, function(data){
	geojson_0=L.choropleth(data, {
		valueProperty: "Rate_2010",
		scale: ['white', 'red'],
		steps: 5,
		mode: "q",
		style:{
			color:'#fff',
			weight: 1,
			fillOpacity: .8
		},
		onEachFeature: function(feature, layer){
			layer.bindPopup(feature.properties.State + "<br>Number of cases:<br>" + feature.properties.Cases_2010)
		}
	}).addTo(myMap);

	var legend = L.control({ position: "bottomright" });
  	legend.onAdd = function() {
    	var div = L.DomUtil.create("div", "info legend");
    	var limits = geojson.options.limits;
    	var colors = geojson.options.colors;
    	var labels = [];

    // Add min & max
    var legendInfo = "<h1>Cases and Rates</h1>" +
      "<div class=\"labels\">" +
        "<div class=\"min\">" + limits[0] + "</div>" +
        "<div class=\"max\">" + limits[limits.length - 1] + "</div>" +
      "</div>";

    div.innerHTML = legendInfo;

    limits.forEach(function(limit, index) {
      labels.push("<li style=\"background-color: " + colors[index] + "\"></li>");
    });

    div.innerHTML += "<ul>" + labels.join("") + "</ul>";
    return div;
  };

	legend.addTo(myMap);

});
body {
  padding: 0;
  margin: 0;
}

#map,
body,
html {
  height: 100%;
}

.leaflet-popup-content {
  text-align: center;
}

/* CSS from the Leaflet-Choropleth documentation */
.legend {
  padding: 6px 8px;
  font: 12px Arial, Helvetica, sans-serif;
  font-weight: bold;
  color: #555;
  background: #fff;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 5px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
}

.legend ul {
  padding: 0;
  margin: 0;
  clear: both;
  list-style-type: none;
}

.legend li {
  display: inline-block;
  width: 30px;
  height: 22px;
}

.legend .min {
  float: left;
  padding-bottom: 5px;
}

.legend .max {
  float: right;
}

h1 {
  text-align: center;
}
<!DOCTYPE html>
<html lang="en-us">
  <head>
    <meta charset="UTF-8">
    <title>Test Choropleth</title>

    <!-- Leaflet CSS & JS-->
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>

    <!-- d3 JavaScript -->
    <script src="https://d3js.org/d3.v4.min.js"></script>

    <!-- Leaflet-Choropleth JavaScript -->
    <script type="text/javascript" src="choropleth.js"></script>

    <!-- Our CSS -->
    <link rel="stylesheet" type="text/css" href="style.css">

  </head>
  <body>

    <!-- The div where we will inject our map -->
    <div id="map"></div>

    <script type="text/javascript" src="test_choro.js"></script>

  </body>
</html>

tilelayer 和控制台的图片

巴蒂斯特

对我来说,错误似乎很清楚。

您正在geojson从本地存储加载file:///Users...这是不可能的。如果您有服务器(apache、nginx)或使用 github 获取原始文件 url,则必须使其可从 url 访问。

您还可以使用此功能:

$.getJSON("your_path/to/state_data.json", function(json) {
    console.log(json);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在传单上使用本地图块图层

来自分类Dev

将传单地图绑定到许多图层

来自分类Dev

谷歌地图的传单

来自分类Dev

彻底摧毁传单地图

来自分类Dev

从传单地图创建 GeoTiff

来自分类Dev

传单地图正在加载局部图块

来自分类Dev

如何在传单地图上循环遍历geojson图层?

来自分类Dev

将图块图层的中心与传单上的地图中心匹配

来自分类Dev

传单-瓷砖加载事件

来自分类Dev

使用addWMSTiles在R传单中加载WMS图层

来自分类Dev

传单地图显示为灰色

来自分类Dev

Flexbox布局中的传单地图

来自分类Dev

传单-从地图上删除标签

来自分类Dev

闪亮/传单地图未呈现

来自分类Dev

SilverStripe上的地图视图传单

来自分类Dev

从传单地图中删除 geoJSON

来自分类Dev

如何在传单地图中删除传单标记窗格?

来自分类Dev

如何在传单地图中删除传单标记窗格?

来自分类Dev

传单地理搜索-从传单地图容器外部搜索位置

来自分类Dev

R - 传单限制 - 传单地图支持多少个标记?

来自分类Dev

通过使用传单Ajax将外部geojson文件加载到传单地图中

来自分类Dev

传单 GeoJson addToMap 加载器

来自分类Dev

当图层控件移出地图元素时,不发出传单地图点击事件

来自分类Dev

传单地图:如何删除图层并将弹出窗口添加到地图?

来自分类Dev

切换到传单地图不会加载

来自分类Dev

在执行缩放之前,地图图块不会加载(传单)

来自分类Dev

传单:如何打开或关闭所有图层?

来自分类Dev

获取传单中图层的标记数

来自分类Dev

如何使用图层应用传单标记群集