问题标签 [topojson]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
583 浏览

javascript - D3.js 洪水地图杀手

这是使用 D3.js 和 topojson 的洪水地图示例。

http://bl.ocks.org/cappelaere/6472064

https://gist.github.com/cappelaere/6472064

这真的是对 D3 征税。在加载时简化 topojson 似乎确实让 Firefox 挂起。我们真的需要让这项工作来支持我们的灾难管理工作。在我们放大时进行自适应简化会很棒。任何帮助将不胜感激。谢谢,

拍。

0 投票
0 回答
813 浏览

json - 为什么我的 D3/topojson SVG 不能使用 queue.js 渲染?

我正在尝试使用 D3.js 创建世界地图,并通过 queue.js 分别加载多个 CSV 文件。但是,我无法呈现 json 几何图形,更不用说能够将 CSV 值附加到路径 ID。

如果没有 queue.js 方法,SVG 可以通过这个方法完美地加载到浏览器中:

但是我在这里遵循的 queue.js 方法不会渲染 SVG。

第一的:

然后:

有人可以告诉我我可能犯了什么错误吗?这是 json 文件结构的片段:

0 投票
1 回答
2892 浏览

d3.js - 使用 PostGIS 和 D3 的测深地图

我正在开发一个应用程序,我想在一张易滑的地图上呈现不同水体的水深可视化。本质上,这些是基于插值 DEM 数据的地理包含的地形可视化。我追求的结果是:

在此处输入图像描述

我已经编写了代码来从深度样本中插入 DEM,并有一个概念证明,我将它们存储在 PostGIS 中的非平铺栅格中(每个水体一个栅格),效果相当好。

但是我确实相信我将不得不用某种基于图块的解决方案来替换这个概念,因为水体几乎可以是任意大小,并且视觉方面可能应该根据缩放级别等进行调整。

如果仅此而已,我可能只是模仿在各个地方描述的常规高程栅格生成概念,通常基于 Mapnik。然而,这里是乐趣开始的地方..

理想情况下,我不想呈现栅格数据,而是呈现矢量(或者可能是两者的组合)。我希望我的地图比栅格数据通常更具交互性(除非栅格数据被撕开并使用例如 D3 进行分析 - 稍后会详细介绍)。我希望有可能根据用户交互动态更改等距离(轮廓线的距离和值)。

关于如何安排这个堆栈,我很想有一些聪明的意见。我想通风的一些想法:

1. 仅栅格切片 高程 DEM 栅格是基于经典的 256x256 墨卡托概念生成的。这些由客户端浏览器动态下载并按原样显示,或使用画布/D3 进行颜色映射。最重要的是,我使用 canvas API 使用 D3 提取矢量轮廓。这将是一个相当干净的解决方案,但我怀疑它会变慢(图像检查部分)。

2. 栅格切片与矢量切片 高程 DEM 栅格仍然会生成,因为它们构成了表示和存储插值数据的好方法。栅格图块仍可能构成地图上的图形叠加层,但本质上,高程等值线由单独获取的矢量图块组成(基于 GeoJSON 或 TopoJSON)。这些瓦片是根据光栅规则生成的。

由于我希望能够即时更改等距,因此我必须能够统一和组合矢量,例如使用 D3。我看了一下 d3.geom.contour 插件,但它似乎有点受限,例如似乎没有局部峰,而是像金字塔一样的拓扑。

最后但并非最不重要的一点是,为了美观,我想执行轻型客户端线插值(或类似的东西)。即测深图的分辨率可能较低(因为更高的分辨率确实没有价值),但在这个分辨率下,轮廓通常会变得笨拙。也许这是 TopoJSON 的一个论点,它的简化可能性?这是我使用 D3 制作的示例(使用服务器端生成的非切片 GeoJSON):

在此处输入图像描述 欢迎任何建议!

0 投票
2 回答
5619 浏览

javascript - 使用 D3.js 仅渲染 topojson 地图的一部分

我正在使用 D3.js 库从美国人口普查 shapefile 创建地图。我正在寻找创建一个完整的美国地图,这没问题,以及每个州的地图。

我的工作流程使用人口普查数据,由 ogr2ogr 在命令行根据需要进行更改,然后由 shpescape.com 转换为 topojson 或 geojson,因为 node.js 下载 topojson 模块时出错(请参阅下面的编辑解决方案这个特定问题)。

我的问题比其他任何问题都更像是一个实用问题——当使用此代码(仿照http://bl.ocks.org/mbostock/4707858)呈现时:

它不仅在“var states”行抛出一个错误,上面写着“无法读取未定义的属性类型”——而且我也不知道我应该传递给匿名函数什么,或者什么 mt_topo.objects .states 应该是指。没有关于这种 GIS 的好文档。所有人口普查地图都有“州”特征吗?将 .shp 压缩为 topojson 时是否会丢失该信息?

简单地说,如果 d3.json 采用 (object, function(error, json)),那么实际工作的示例会是什么样子?

编辑:解决方法和 WINDOWS 7 IDIOSYNCRASIES -----

大多数教程告诉您使用 node.js 中的模块,但我在 Windows7 上,并且规范命令行“npm install -g topojson”在“上下文化”失败。创建者给我发了一个很好的链接来解决上述问题。

这很重要,因为在 topojson 的命令行中有一个标志,您可以在其中将 geojson 中的现有功能打包到 topojson 中的可访问对象中。例如,上面的代码在 topojson 中使用了“状态”——除非您使用以下命令,否则这是毫无意义且无法访问的:

双连字符和状态之间的空格很重要。然后,您可以通过 us.objects.states 访问状态,如上面的原始代码所示。

0 投票
2 回答
5595 浏览

json - Topojson:量化 VS 简化

quantization和 和有什么不一样simplification?量化是另一种简化的方式吗?在某些情况下使用量化会更好吗?或者我应该使用两者的组合?

0 投票
1 回答
634 浏览

gis - Topojson:如何在 GIS 软件中设计有效的多边形、线、点?

到目前为止,我一直使用来自网络的 GIS 文件,这些文件为我提供了管理多边形、河流、陆地等。然后我将它们转换为 Topojson 格式以提供 D3js。

今天我必须在 Quantum GIS (QGIS) 中设计自己的层 (wine_areas)。同样,此 .shp 文件稍后将转换为 Topojson 格式。

在 GIS 软件(.shp 文件)中设计我的形状、线条、点时:我应该担心哪些关键方面,以及如何做到这一点 .shp 和最终的 Topojson 文件是有效的,具有预期的类型?大多数情况下,相邻多边形共享它们的公共弧等。


我特别想知道如何在 GIS 软件中设计我的 topojson “弧”:

  • 我应该把我的形状放在附近吗[][]
  • 我应该设计一个形状并用一条线切割它吗[|]
  • 需要哪个级别的精度?(以及如何知道)

和其他提示。

0 投票
1 回答
419 浏览

d3.js - d3 地图显示空的,看似有效的 topojson 数据

我遵循了这个例子:http ://bost.ocks.org/mike/map/

显示这个 topojson 文件:

https://github.com/max-l/topojson-experiments/blob/master/qc-map.json

地图总是空的,我尝试设置正确的中心 d3.geo.albers().center(-71,45) 和许多其他的东西都没有成功。

我注意到 Github 能够渲染它(带有传单)

https://github.com/max-l/topojson-experiments/blob/master/qc-map.json

这让我认为它是有效的 topojson ..

0 投票
1 回答
920 浏览

d3.js - 如何将海洋形状文件转换为topojson

我的 MacOs 10.7.5 上安装了 gdal 1.10.1 和 topojson 1.4.0。我已经下载了ne_110m_ocean表格 Natural Earth。

我成功地在 GeoJSON 中转换了形状文件:

然后我将 GeoJSON 转换为 topojson:

当我使用 GeoJSON 文件进行绘图时,一切正常。

当我使用 topojson 文件进行绘图时,我得到的是陆地的多边形,而不是海洋的多边形!!!!

任何人都可以帮忙吗?

提前致谢

0 投票
1 回答
1212 浏览

d3.js - 如何从 110m TopoJson 世界地图中删除一条线?

我使用 D3 创建了一张带有110m 世界地图和墨卡托投影的地图。我将地图旋转了 -10 度,让它按照我想要的方式排列,然后设置描边和填充。完成此操作后,我注意到有一条线穿过楚科奇半岛(通常在阿拉斯加左侧发现的那一点)。

楚科奇半岛

查看 GitHub 上的渲染以及使用此投影制作的另一张地图,似乎这条线实际上在数据中。

从 GitHub 渲染 另一个例子

有没有办法摆脱它(编辑 TopoJSON,重新生成它的形状,或其他方式)?

0 投票
0 回答
463 浏览

d3.js - d3 在缩放的边界框中仅绘制地图特征

我已经建立了一个地图,在某个(x,y)坐标点上悬停时,一个放大的迷你地图会显示在中心悬停点的一侧(使用类似于:http://bl .ocks.org/mbostock/2206590)。它工作得很好,但效率有点低,因为它正在用新的比例重新绘制整个地图,并且每次我起飞时都会翻译溢出:隐藏在 IE 中的迷你地图中。

d3 或 TopoJSON 中是否有内置方法来过滤地图特征以仅保留那些落在放大区域的边界框内的特征?

谢谢!