如何获取地图当前可见区域的坐标

时间:2015-08-13 18:07:56

标签: d3.js svg

我想知道如何获得用d3创建的地图当前可见区域的坐标(经度,纬度)。我正在寻找适用于正交投影和墨卡托投影的解决方案。

目的是过滤要应用于地图的数据/形状。

这是我创建SVG根元素以将地图元素放入:

的方式
var svg = d3.select(element[0]).append('svg')
      .attr('preserveAspectRatio', 'xMidYMid')
      .attr('viewBox', '0 0 ' + width + ' ' + height)
      .attr('width', mWidth)
      .attr('height', mWidth * height / width);

svg.append('rect')
      .attr('class', 'background')
      .attr('width', width)
      .attr('height', height);

以下是我创建投影的方法:

var projection1 = d3.geo.orthographic()
      .scale(248)
      .clipAngle(90);

var projection2 = d3.geo.mercator()
      .translate([configuration.width / 2, configuration.height / 1.5]);

修改

根据Lars的回答,我尝试使用项目#inverse method with orthographic projection,如下所述:

var bbox = svg.node().getBBox();
var x1 = bbox.x;
var y1 = bbox.y;
var x2 = bbox.x+bbox.width;
var y2 = bbox.y+bbox.height;

var lonLat1 = projection.invert([x1, y1]);
var lonLat2 = projection.invert([x2, y2]);

无论缩放级别如何,变量lonLat1lonLat2都是[NaN,NaN]

非常感谢你的帮助! 亨利

0 个答案:

没有答案