是否可以在d3.js的地理要素周围绘制缓冲区(另一个功能)作为固定距离单位(公里或英里)?例如,我将如何绘制一条从每个方向延伸25英里的点的路径。我尝试过使用d3.geo.circle并传递一定的度数(25英里/每纬度约69英里或25/69),但意识到尽管d3.geo.circle处理度数的重投影,但它不适应针对每个纵向度的不同长度。d3.geo缓冲区周围的缓冲区
buffer = d3.geo.circle().angle(25/69).origin(function(x, y) { return [x, y]; })
我从这个借款:
http://bl.ocks.org/mbostock/5628479
更新:
看起来想什么,我要做的就是创建一个缓冲测地线。
更新:
我能够从一系列的给定的距离和从起点轴承的目标点绘制路径创建缓冲区。
的JavaScript实现
喜欢这个显示http://www.movable-type.co.uk/scripts/latlong.html:
function drawBuffer(lat, long, distance){
var intervals = 18;
var intervalAngle = (360/intervals);
var pointsData = [];
for(var i = 0; i < intervals; i++){
pointsData.push(getDestinationPoint(lat, long, i * intervalAngle, distance));
}
// Draw path using pointsData;
}
也许有助于采取看看[大地插件(https://github.com/d3/d3-plugins/tree/主/短程线) – cengel