首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D3js:如何从鼠标点击获取Lat/LogGeo坐标?

D3js:如何从鼠标点击获取Lat/LogGeo坐标?
EN

Stack Overflow用户
提问于 2012-06-04 16:42:48
回答 2查看 7.1K关注 0票数 8

使用一些D3js代码和任何投影地图数据中投影的topojson数据,我如何返回地理坐标?这样的事情:

代码语言:javascript
复制
var svg = d3.select("#viz").append("svg:svg")
 .attr("width", 320)
 .attr("height", 200)
 .on("mousedown", mousedown)
 .on("click", mouselocation);

如何从单击D3js地图可视化中获取地理坐标?

链接到演示欢迎。

编辑:相关演示列表:

  • OpenLayers演示...但我们什么D3js。
  • 杰森·戴维斯/轮调/projection.invert(d3.mouse(this))的使用
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-04 17:35:36

使用d3.mouse获取像素坐标,然后使用投影(此处为d3.geo.azimuthal)将x和y反演到经度和纬度。例如:

代码语言:javascript
复制
d3.select("svg").on("mousedown.log", function() {
  console.log(projection.invert(d3.mouse(this)));
});

如果您想支持单击SVG的背景,您可能还需要一个带有指针事件的不可见的rect : all。(还请注意:较早版本的D3使用的是d3.svg.mouse而不是d3鼠标。)

票数 18
EN

Stack Overflow用户

发布于 2014-08-23 13:34:40

杰森·戴维斯/轮调/projection.invert(d3.mouse(this))的使用很好,值得一看。

.on("mousedown.grab", function() { var point; if (mousePoint) point = svg.insert("path", ".foreground") .datum({type: "Point", coordinates: projection.invert(d3.mouse(this))}) .attr("class", "point") .attr("d", path); // add back the point

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10884886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档