這個簡單的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