问题标签 [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 回答
4751 浏览

d3.js - 如何使用 d3 在传单中显示 topojson 层?

在过去的两天里,我一直在尝试在 Leaflet 上制作一个非常简单的地图,并且正在碰壁。

我有一个 topoJSON 文件,其中包含由以前的 geoJSON 文件组成的两层:5 个州的美国邮政编码和 5 个州的多边形。

我想在 Leaflet 上显示这些,由于邮政编码层的文件大小较小,因此使用 topoJSON 而不是 geoJSON 很重要。

问题是我终其一生都无法将我的 topoJSON 文件中较小的状态图层显示在地图上。我在网上查看了很多示例并遵循了 Mike Bostock 的示例:https ://github.com/mbostock/bost.ocks.org/blob/gh-pages/mike/leaflet/index.html#L131-171 .

我可以只使用 d3 让文件显示在网络浏览器中,所以文件很好。我在脚本中使用 topoJSON v1 和 topojson.feature 方法。代码如下。我无法使 topoJSON 文件可用,但我假设它没问题,因为我之前已经将它与 d3 一起使用过。如果有人能从剧本中发现一些不正常的地方,那就太好了。

谢谢。

0 投票
1 回答
1480 浏览

d3.js - 使用 d3.geo.tile 绘制点

我一直在扩展此示例中的代码:

http://bl.ocks.org/mbostock/5914438

但我似乎无法弄清楚如何以可以将它们集成到缩放中的方式在此地图上放置点。路径工作正常,但似乎修改后的投影不能用于投影点的坐标,并且在缩放函数中,当应用于包含点的元素时,对 transform() 的 scale() 似乎可以缩放这些点大到填满整个屏幕。这是我的补充观点:

这是 zoomed() 中的函数:

我也尝试过使用网站的单个元素,但没有成功。有没有人有一个在geo.tile上放点的例子?

0 投票
2 回答
1741 浏览

node.js - 在 ubuntu 上安装 topojson 时遇到问题

我一直在尝试按照 Mike Bostock 的 Let's Make a Map 教程http://bost.ocks.org/mike/map/安装 topojson ,我相信我已经设法获得了最新版本的 Node.js 和 npm。$which ogr2ogr 也可以。我对编程和 Ubuntu 还是很陌生,并且真诚地感谢一些彻底的帮助,说明为什么 npm install topojson -g 会产生以下错误。当我使用 sudo 尝试相同的命令时,它会产生如下错误:npm ERR!解析 json 和 gyp 错误的注册表错误!堆栈错误:无法安装“pre”版本的节点,请改用 --nodedir 标志

谢谢!

0 投票
1 回答
228 浏览

d3.js - 从地理区域和栅格文件中获取多边形的工作流程是什么?

给定一个对应于欧洲的 TIFF 文件,并转换为形状轮廓:

给定对应于法国的定义区域:

如何仅获取几何与我定义的区域与 gdal 相交的特征?

0 投票
1 回答
789 浏览

d3.js - 将多个 geojson 文件与 tsv 组合并使用 topojson 保留属性

我正在尝试用 topojson 做很多事情……结合 2 个 geojson 文件和 1 个 tsv,加入 ELECT_DIV n NAME,将其提升为 id,并从 tsv 中保留 2012_POP。

这是我正在使用的命令:

topojson -o electorates.json -e 2012_oz_population.tsv --id-property ELECT_DIV,NAME -p 2012_POP -s .0000005 --allow-empty -- electorates.geojson region.geojson

ELECT_DIV 在选民.geojson 中。它被设置为所有功能的 ID,但每个功能都没有从与 tsv 的连接中获得正确的 2012_POP。然而,在顶层,选民和地区正在从 tsv 获得 2012_POP 的最后一个值,所以它以某种方式加入......

关于我做错了什么的任何想法?我需要在多个 topo 命令中执行此操作吗?

谢谢!

更新 W 请求的信息
2012_oz_population.tsv
CED_CODE NAME 2011_POP 2012_POP
101 Banks 154938 156527

选民.geojson
"features": [ { "type": "Feature", "properties": { "ELECT_DIV": "Lingiari", "STATE": "NT", "NUMCCDS": 335.0, "ACTUAL": 0.0, "PROJECTED": 0.0, "POPULATION": 0.0, "OVER_18": 0.0, "AREA_SQKM": 1352034.05, "SORTNAME": "Lingiari" }, "geometry": { "type": "MultiPolygon",

region.geojson
"features": [ { "type": "Feature", "properties": { "scalerank": 5, "featurecla": "Admin-0 country", "labelrank": 5.0, "sovereignt": "Australia", "sov_a3": "AU1", "adm0_dif": 1.0, "level": 2.0, "type": "Dependency", "admin": "Ashmore and Cartier Islands", "adm0_a3": "ATC", "geou_dif": 0.0, "geounit": "Ashmore and Cartier Islands", "gu_a3": "ATC", "su_dif": 0.0, "subunit": "Ashmore and Cartier Islands", "su_a3": "ATC", "brk_diff": 0.0, "name": "Ashmore and Cartier Is.", "name_long": "Ashmore and Cartier Islands", "brk_a3": "ATC", "brk_name": "Ashmore and Cartier Is.", "brk_group": null, "abbrev": "A.C.Is.", "postal": "AU", "formal_en": "Territory of Ashmore and Cartier Islands", "formal_fr": null, "note_adm0": "Auz.", "note_brk": null, "name_sort": "Ashmore and Cartier Islands", "name_alt": null, "mapcolor7": 1.0, "mapcolor8": 2.0, "mapcolor9": 2.0, "mapcolor13": 7.0, "pop_est": -99.0, "gdp_md_est": -99.0, "pop_year": -99.0, "lastcensus": -99.0, "gdp_year": -99.0, "economy": "7. Least developed region", "income_grp": "5. Low income", "wikipedia": -99.0, "fips_10": null, "iso_a2": "-99", "iso_a3": "-99", "iso_n3": "036", "un_a3": "-099", "wb_a2": "-99", "wb_a3": "-99", "woe_id": -99.0, "adm0_a3_is": "AUS", "adm0_a3_us": "ATC", "adm0_a3_un": -99.0, "adm0_a3_wb": -99.0, "continent": "Oceania", "region_un": "Oceania", "subregion": "Australia and New Zealand", "region_wb": "East Asia & Pacific", "name_len": 23.0, "long_len": 27.0, "abbrev_len": 7.0, "tiny": -99.0, "homepart": -99.0 }, "geometry": { "type": "Polygon", "coordinates":

现在我把它写出来了(并且想出了如何像小丑一样在 Stackoverflow 中做基本的降价),我想知道,它是否被 region.geojson 中的名称连接所吸引?

非常感谢@mbostock 的帮助

0 投票
1 回答
1031 浏览

makefile - make: *** 没有制定目标的规则?`file.ext',`mystepN' 需要。停止

我有一手命令,每个命令在隔离时都可以在控制台中完美运行。为了简化我的工作,我将它们收集到一个 makefile 中:

然而,当它在我的 makefile 中时,我收到以下错误:

这个错误是什么意思?如何使它起作用?我是不是打错字了?

0 投票
1 回答
3747 浏览

d3.js - 使用 topojson 映射美国邮政编码时出错

加载美国邮政编码 topojson 文件后,我在 d3.js 中遇到错误。groupdata在这一行未定义:

错误:

我正在调用和创建路径的代码是:

我从这个 repo 生成了 zipcode topojson 文件:https ://github.com/mbostock/us-atlas 。当我在加载时检查拓扑对象时,我在 topology.objects.zipcodes 下看到 32893 个弧。

我已经成功地使用 chloropleth 示例http://bl.ocks.org/mbostock/4060606加载了县,并且正在使用与此类似的模式。

我正在使用 d3.js 版本 3.2.8 和 topojson.js 版本 1.2.3。

有任何想法吗?它是一个错误的邮政编码文件还是我说错了?

0 投票
2 回答
5355 浏览

d3.js - D3js:如何设计地形图?

给定具有高程数据的 GIS 栅格,如何在 D3js 中设计地形图?

有没有使用 D3js 制作的耕地地形图的例子?


不工作:我探索了.tif > gdal_contour.py > .shp > topojson > d3js没有成功的可能性。

使用包含我所有命令的生成文件。由于我感兴趣的区域(法国)是一片土地,因此该gdal_contour.py方法会生成不会创建封闭多边形的断开等值线。此外,SVG 最终结果失败。我所知道的 D3 地形图的唯一示例是关于冰岛的,作为一个岛屿,冰岛避免了这个问题:将这个国家从世界中剔除不会导致等值线断裂。

在此处输入图像描述

注意:这个项目是#Wikipedia #wikimaps 项目的一部分。

0 投票
5 回答
442 浏览

topojson - 如何优雅地美化一个topojson代码?

是否有一些工具可以探索单行 topojson 文件的树结构?(美化)


点评:我目前的方法是在文本编辑器中打开topojson .json,边浏览边手动寻找线索。我最终手工总结了整个内容并保留了一个方便的笔记,例如:

但是有一些更高级的工具可以打开、探索、编辑 topojson 吗?

0 投票
1 回答
1355 浏览

d3.js - D3js 制图:自动关注地理区域?(svg 画布、缩放比例、坐标转换)

我处理了 SRTM 栅格数据以生成 shapefile -> geojson -> topojson,因此我可以为 D3js 提供合适的格式。

结果看起来像这样(蓝色区域是我的超大 svg 画布): 在此处输入图像描述

给定地理边界地理边界(西部边界,北部,东部,南部) 和中心

地理维度、svg 维度和比例之间的关系是什么?

如何尽可能简化“自动对焦”?