使用 D3 在地图上绘制点

2024-04-14

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

我已将当前代码放在:http://bl.ocks.org/rpowelll/8312317 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
    }
  }
]

接下来,我设置了一个 Plate Carré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 元素的边界。我在这里做错了什么明显的事情吗?


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

 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
    ]) + ")";
  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 D3 在地图上绘制点 的相关文章

随机推荐

  • 为什么 Visual Studio Code 不断更改工作目录?

    我正在尝试使用 VS Code 来完成 Flask Web 开发 一书 我可以从命令行运行简单的 hello world 示例 但我想使用 VS 代码进行调试等 我修改 launch json 文件来构建 Flask 配置 name Fla
  • 企业库4数据配置标签

    我正在使用企业库来访问数据 当我运行应用程序时 在 CreateDatabase 语句中我收到此异常 Microsoft Practices ObjectBuilder2 BuildFailedException 未被用户代码处理 Mess
  • 在 Android 中从一个 Activity 移动到另一个 Activity

    我想从一项活动转移到另一项活动 使用虚拟设备 当我单击按钮移动时 我的模拟器会显示一个对话框unfortunately SMS1 has stopped working SMS1 是我的应用程序名称 有人可以帮助我纠正我的代码吗 MainA
  • & 符号使我无法使用 jQuery 加载 XML

    我在 XML 文档中显示描述 然后使用 jQuery 将其加载到应用程序中 当我尝试使用 时 它会破坏代码的加载 我也尝试过 38 它也不起作用 是否有解决方法可以让我在 XML 中包含 符号 编辑 结构是
  • ResultSet.getTimestamp("日期") 与 ResultSet.getTimestamp("日期", Calendar.getInstance(tz))

    java util Date java util Timetamp似乎给许多人带来了极大的困惑 StackOverflow 中有很多问题 不幸的是我的问题有点扭曲 有 2 个 JDBC api 他们应该如何表现 RDBMS 之间是否存在一致
  • 如何保存单选按钮状态

    我正在开发Android应用程序 其中我打开自己的自定义对话框 当我选择单选按钮时 我使用单选按钮 毫无疑问它被选中并工作 但是当我再次打开对话框时 所有单选按钮都被取消选择 我想保存上一个按钮的状态 enter code here pri
  • Android AlertDialog 标题字体

    我正在尝试更改字体android support v7 app AlertDialog标题文本 方法一 TextView title TextView dialog findViewById android R id title retur
  • Redux 应用程序中每个减速器调用上深度复制状态有哪些缺点?

    进行深度复制是否有任何副作用state每次调用reducer函数时 在Redux应用程序中的appReducer上 我这么问是因为不可变的更新模式 https redux js org recipes structuring reducer
  • 区分鼠标和键盘触发onclick

    我需要找到一种方法来确定链接是否已通过鼠标单击或按键激活 a href Save a 这个想法是 如果他们使用鼠标点击链接 那么他们可以继续使用鼠标来选择下一步要做什么 但是 如果他们在页面上切换并切换到 保存 链接 那么我将打开下一行进行
  • 用于分类的 Python 向量化[重复]

    这个问题在这里已经有答案了 我目前正在尝试构建一个包含大约 80 个类别的文本分类模型 文档分类 当我使用随机森林构建和训练模型时 将文本矢量化为 TF IDF 矩阵后 该模型运行良好 然而 当我引入新数据时 我用来构建 RF 的相同单词不
  • 将 R 数据框中的多列转换为日期格式

    我有一个很大的数据文件 其中所有日期都已作为字符加载 我想将所有日期列更改为日期格式 大多数日期具有 y m d 格式 有些具有 Y m d 格式 有 25 列日期 因此单独更改每一列的效率很低 我可以 df DATE1 lt as Dat
  • Firebase:如何将虚 URL 添加到云函数?

    被简短提及here https stackoverflow com questions 45850375 use custom domain for google cloud function 但现在我已经将我的 GCP 项目连接到 Fir
  • 如何在“X”秒后调用 jquery 函数

    我有一个 jquery 函数 我需要在 Iframe 中打开网站后调用它 我正在尝试在 Iframe 中打开一个网络链接 打开它后我需要调用以下函数 那么我该怎么做呢 这是我的功能
  • xcode 4.5 崩溃日志符号除应用程序行外

    我怎样才能象征一切 这是一个例子 所以我正在谈论 Thread 0 name Dispatch queue com apple main thread Thread 0 Crashed 0 CoreFoundation 0x351642cc
  • 如何在标签中的 tkinter 上制作字幕?

    我有这个源代码 from Tkinter import import tkMessageBox import time class Window Tk def init self parent Tk init self parent sel
  • 将图像文件存储在 IndexedDB 中

    我在尝试将图像文件存储在 IndexedDB 中时遇到问题 我抓取文件对象并尝试将其推送到 IndexedDB 中 但它似乎抛出错误 DOM Exception DATA CLONE ERR 25 如何将如下所示的文件对象转换为可以存储在
  • 如何在Eclipse中添加JBoss服务器?

    我是 JBoss 的新手 刚刚安装了 Eclipse 我已将一个项目添加到工作区 现在我想将其部署到 Jboss 服务器 然而 在新的服务器运行环境列表中 JBoss 不可用 我正在使用以下 Eclipse 版本 面向 Web 开发人员的
  • 从 UIViewController 返回 NSString

    我想返回一个NSString 从一个名为InputUIViewController的UIViewController 到之前的一个名为CallerUIViewController的UIViewController 它启动了InputUIVi
  • F# 图表示例

    我想使用内置功能或免费库在 F 中做一些基本的图表 我会对一个非常基本的例子感到非常非常满意 如果可能的话 饼图 示例数据 John 34 Sara 30 Will 20 Maria 16 其中整数是饼图中要表示的百分比 我最近安装了 VS
  • 使用 D3 在地图上绘制点

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