Javascript d3:使用数据地图创建美国地图
我正在尝试使用Javascript d3:使用数据地图创建美国地图,javascript,d3.js,Javascript,D3.js,我正在尝试使用DataMaps包和d3获得一个简单的美国地图。我尝试了以下方法: <!DOCTYPE html> <html> <head> <title> TEST </title> <script src="https://d3js.org/d3.v5.js"></script> <script src="https://unpkg.com/topojson@3"></script>
DataMaps
包和d3获得一个简单的美国地图。我尝试了以下方法:
<!DOCTYPE html>
<html>
<head>
<title> TEST </title>
<script src="https://d3js.org/d3.v5.js"></script>
<script src="https://unpkg.com/topojson@3"></script>
<script src="node_modules/datamaps/dist/datamaps.world.min.js"></script>
<div id="container" style="position: relative; width: 500px; height: 300px;"></div>
<script>
var map = new Datamap({
element: document.getElementById('container'),
scope: 'usa'
})
var projection = d3.geoAlbers()
</script>
根据这个问题,我修正了这个问题:
如果我将usa
更改为world
,我会得到相同的错误,但是使用equirectangle
而不是albersua
如何使此贴图渲染?谢谢安德鲁·里德是对的,看起来像是D3版本的问题。我以前没有使用过这个库,但是能够使用这个示例(和v3 d3)获得一个简单的choropleth:
试验
var-map=新数据映射({
元素:document.getElementById('container'),
填充:{
高:“#afafaf”,
低:“#123456”,
中等:“蓝色”,
未知:“rgb(0,0,0)”,
默认填充:“绿色”
},
数据:{
IRL:{
fillKey:'低',
数量:2002
},
美国:{
fillKey:'中等',
数量:10381
}
}
});
但是,我无法让您的示例使用相同的更改,因此您发布的代码可能存在更深层次的问题。我不知道datamaps是否支持d3v4/5,如果您使用d3v3,您将能够使用d3.geo.albersUsa(由于d3.geo在v4/5中未定义,您将无法读取未定义的albersUsa属性)@AndrewReid我是否应该将第一个
中的链接更改为v3
?谢谢在过去类似的问题上,这是一个成功的改变(当然我现在找不到)。是的,这个问题可能应该被标记为重复并关闭@SO powers
Uncaught TypeError: Cannot read property 'albersUsa' of undefined
<!DOCTYPE html>
<html>
<head>
<title> TEST </title>
<script src="https://d3js.org/d3.v3.js"></script>
<script src="https://unpkg.com/topojson@3"></script>
<script src="node_modules/datamaps/dist/datamaps.world.min.js"></script>
<div id="container" style="position: relative; width: 500px; height: 300px;"></div>
<script>
var map = new Datamap({
element: document.getElementById('container'),
fills: {
HIGH: '#afafaf',
LOW: '#123456',
MEDIUM: 'blue',
UNKNOWN: 'rgb(0,0,0)',
defaultFill: 'green'
},
data: {
IRL: {
fillKey: 'LOW',
numberOfThings: 2002
},
USA: {
fillKey: 'MEDIUM',
numberOfThings: 10381
}
}
});
</script>