来自latLngs的SVG多边形形状

时间:2015-02-06 06:18:30

标签: javascript svg d3.js latitude-longitude geography

我正在尝试编写一个Javascript函数,它允许我输入任何一组边界并返回该区域的形状(例如提供堪萨斯的边界并恢复其形状)。我已经有了界限并且知道我可以创建svg polygon并将其points属性设置为bounds数组(转换为字符串)。我也明白,因为points确实是latLngs我应该将viewBox attr设置为整个世界的边界(这样我才能真正输入任何坐标集)。我无法理解的是我如何有效地放大"放大"这样我才能真正看到形状。使用下面的功能,我成功​​地将其渲染,但它非常小,我不确定如何使它尽可能多地适合盒子?我开始关注D3,但后来不确定这是最好的解决方案,因为我不想把它们放在地图上,我只是想吸引它们。

var pointsData = function(bounds) ->
 points = []
 i = 0
 while i < bounds.length
   points.push bounds[i].lat + ' ' + bounds[i].lng
   i++
 return points.toString().replace(",", "");;

然后将给定points的{​​{1}} attr设置为svg函数的结果。


编辑&gt;溶液

使用HTML5 Canvas和地图投影仪功能结束: http://jsfiddle.net/xtjgwa45/1/

0 个答案:

没有答案