使用D3在地图上绘制点

鲍威尔

我正在尝试使用基于纬度和经度的D3地理库在地图上绘制一些点。但是,当我将这些值传递到我的投影函数中时,它导致的坐标超出了我的SVG图像的范围。我的代码基于文档中提供的示例

我将当前代码放在:http : //bl.ocks.org/rpowelll/8312317

我的源数据是一个简单的对象数组,其格式如下

var places = [
  {
    name: "Wollongong, Australia",
    location: {
      latitude: -34.42507,
      longitude: 150.89315
    }
  },
  {
    name: "Newcastle, Australia",
    location: {
      latitude: -32.92669,
      longitude: 151.77892
    }
  }
]

之后,我像这样设置了一个PlateCarrée投影:

var width = 960,
height = 480

var projection = d3.geo.equirectangular()
    .scale(153)
    .translate([width / 2, height / 2])
    .precision(.1);

var path = d3.geo.path()
    .projection(projection)

从那里,我使用与链接示例完全相同的代码来绘制地图。在脚本的结尾,我使用以下代码在此地图上绘制点:

svg.selectAll(".pin")
    .data(places)
  .enter().append("circle", ".pin")
    .attr("r", 5)
    .attr("transform", function(d) {
      return "translate(" + projection([
        d.location.latitude,
        d.location.longitude
      ]) + ")"
    })

但是,此代码导致的点超出了SVG元素的范围。我在这里做错什么了吗?

拉尔斯·科特霍夫(Lars Kotthoff)

您的代码中有一个简单的错字-坐标应作为(经度,纬度)传递给投影,而不是相反。此代码应该可以正常工作:

 svg.selectAll(".pin")
  .data(places)
  .enter().append("circle", ".pin")
  .attr("r", 5)
  .attr("transform", function(d) {
    return "translate(" + projection([
      d.location.longitude,
      d.location.latitude
    ]) + ")";
  });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 D3 geoNaturalEarth1 地图上绘制点

来自分类Dev

如何使用D3.js在地图上绘制点?

来自分类Dev

使用Node js和D3实时在地图上绘制状态名称

来自分类Dev

如何根据纬度/经度在D3地图上的两个点之间绘制线/链接?

来自分类Dev

d3.js在地图上绘制机场地图点,并在不同文件上绘制坐标

来自分类Dev

在d3画布地图上绘制圆弧的问题

来自分类Dev

如何在用 d3 绘制的 SVG 地图上显示国名标签?

来自分类Dev

D3.js-由于投影错误在地图上绘制点失败

来自分类Dev

并非所有d3点都在传单地图上显示正确的位置

来自分类Dev

使用D3.js在地图上绘制节点和边的网络

来自分类Dev

AngularJS-在地图上绘制点

来自分类Dev

在无边界的地图上绘制点

来自分类Dev

在MATLAB中在地图上绘制点

来自分类Dev

使用D3将纬度/经度放置在azimuthalEqualArea地图上

来自分类Dev

连接数据并使用D3在地图上弹出

来自分类Dev

在Matlab的地图上绘制3d条形图

来自分类Dev

在Matlab的地图上绘制3d条形图

来自分类Dev

如何使用d3逐一绘制/添加散点图上的节点?

来自分类Dev

单张地图上的d3圆圈

来自分类Dev

地图上的D3.js绘图点

来自分类Dev

如何使用D3 /人力车在时间序列图上标记离散点?

来自分类Dev

使用Eclipse在map-google地图上的两点之间绘制路径

来自分类Dev

在D3 JS中使用对角线函数在两点之间绘制曲线

来自分类Dev

将D3地图放在Google地图上

来自分类Dev

在Openlayers 3中使用OSRM Routing在地图上沿地图方向绘制多义线

来自分类Dev

在D3中的钟形曲线上绘制点

来自分类Dev

在D3中的钟形曲线上绘制点

来自分类Dev

使用MKPolyline在地图上绘制用户路线

来自分类Dev

使用R在GADM地图上绘制城市

Related 相关文章

热门标签

归档