这个简单的geojson矩形显示与一些geojson查看器正确,我得到一个矩形如预期。但是当我用d3来做时,这个矩形似乎环绕着。d3.geo.path矩形环绕错误
var polygonData = {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[ -100, -20 ],
[ -100, 20 ],
[ 100, 20 ],
[ 100, -20 ],
[ -100, -20 ]
]
]
},
"properties": {}
};
var width = 1000;
var height = 500;
var projection = d3.geo.equirectangular()
.scale(100)
.translate([width/2, height/2])
.rotate([0, 0])
\t .center([0, 0])
.precision(0);
var path = d3.geo.path()
\t \t .projection(projection);
var svg = d3.select("body").append("svg")
.attr({
width: width,
\t height: height
});
svg.append('path')
.datum(polygonData)
.attr({
d: path,
fill: 'orange',
opacity: 0.5
});
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<style>
</style>
</head>
<body>
</body>
下面是我得到一个geojson viewer:
但这里是我得到上述d3 code:
颠倒缠绕顺序只是填充相反的形状,它不能解决问题。我猜它是一个反经络切割问题。一种解决方法是添加一些中间点以强制路径不环绕,但我需要能够使用更复杂的路径自动化此解决方案。
任何想法如何与d3一起使用此geojson并强制它像其他geojson查看器一样显示它,如同在地图上的一个简单矩形一样?
从他切换到默认子午线切割,以小圆圈剪裁似乎做的伎俩:projection.clipAngle(181)http://stackoverflow.com/a/30996241/537080我想知道更好的解决方案是使用投影流吗? – Biovisualize