- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我在绘制 topojson map 时遇到了一些问题。我的 topojson 文件具有以下属性:
{"type":"Topology","arcs":[[[6566,5055] ...
"transform":{"scale":[0.00014849648332078075,0.00015400850549819297], ...
在我的脚本上:
var projection = d3.geo.mercator()
.scale(5000)
.translate([width/2 , height/2 ])
当比例设置为200时,它非常小,几乎看不见;当以非常大的比例设置时,它完全是空白的。如何解释 topojson 文件和脚本中的比例?
最佳答案
使用的 topojson 上的比例因子是 ( from API documentation ) 的一部分:
a transform which specifies how to convert delta-encoded integer coordinates to their native values (such as longitude & latitude).
虽然规模与 ( D3 API documentation ) 相关:
The scale factor corresponds linearly to the distance between projected points; however, absolute scale factors are not equivalent across projections.
我不认为其中一个会帮助你解决另一个。特别是对于相似的特征,不同的投影类型将具有不同的比例值。这甚至适用于单个投影,例如墨卡托投影,它需要不同的比例值来放大相同大小的不同特征,具体取决于它们所在的位置 - 由于像任何投影一样的失真。
使用 D3 墨卡托投影,比例值为 200 可以显示几乎整个星球(960 像素 x 500 像素)。所以,你的特征会很小(除非你的特征是整个星球)。使用较大的比例值进行放大将有助于增加要素相对于视口(viewport)的大小。
但是,您要缩放到哪里?默认情况下,墨卡托投影将缩放到 [0,0],即本初子午线和赤道的交点,位于非洲海岸附近。您的特征可能不位于大西洋的这一部分。您需要缩放到特定区域 - 这是通过使用 d3 投影的 .center()
和 .rotate()
方法之一或两者来完成的。
您需要知道您感兴趣的区域中间的一个点,它不需要非常精确。然后您需要设置投影的聚焦位置。对于墨卡托投影,这可能如下所示:
.center(x,y)
或者(不是两者):
.rotate(-x,-y)
其中 x 是您感兴趣的区域中心的经度,y 是您感兴趣的区域中心的纬度。当然,您仍然需要缩放您的投影。从缩放参数的较小值开始,然后放大将有助于确保您至少位于正确区域的中心。
关于javascript - Topojson 比例问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43540087/
我有美国州 topojson 和加拿大州 topojson 我想将它们合并到单个文件中。有人可以告诉我如何将两个文件合并为单个 topojson 文件。我在创建 map 时使用墨卡托投影 最佳答案 我
related question 我正在尝试向 topojson 文件添加外部属性,us-counties.json (使用 us-atlas 使用 make topo/us-counties.jso
我想将三个 geojson 文件合并为一个 topojson 文件。其中两个文件是非常简单的形状文件。他们不需要简化。 其中之一是10m文化自然地球矢量文件。它的 geojson 是 24.8mb。我
因此,使用 -s 标志从命令行简化使用 topojson 没有问题,但是,我不知道如何从 节点模块。 我看到一个 topojson.simplify() 方法,但由于没有文档,我不知道它是如何工作的。
刚开始使用 TopoJSON。所以我有一张来自 US Census site 的美国县 map 。我只需为每个州和每个州的县添加 State Codes和 County Names使用 TopoJso
我在玩 topojson 时玩得很开心,但在 topojson 的 V1 中似乎没有定义 topojson.object,而在 V0 中支持它。有人可以解释我如何解决这个问题吗?我正在尝试为格式为 t
据我了解,D3 中的 topojson.presimplify(JSON) 根据其重要性将 Z 坐标添加到输入 topojson 形状中的每个点,然后允许使用它进行动态简化,如http://bl.oc
有没有人看过美国国会选区的 topoJSON 文件?或者,如果我可以找到坐标或 geoJSON 文件,是否容易转换为弧线? 最佳答案 官方制图边界更有可能作为 shapefile 而不是 GeoJSO
我是 d3.js 的新手,我想使用 TopoJSON 创建 map ,这是我在示例中读取 json 文件时出现的问题,如 us.json 中的以下内容。 "counties": {
我尝试根据两个坐标对(作为起点和着陆点)为单次飞行制作动画。但是我遇到了错误: Error: attribute d: Expected number, "...". 来自 d3.js。 我不认为 d
在下面的函数中,我这样做是有效的: var land = topojson.feature(europe, europe.objects.nuts1); 但如果我这样做,它就会崩溃: var
我已经安装了 topojson w/homebrew,并且正在研究与帖子 Troubleshooting topojson installation 中的用户相同的教程。但当我打电话时没有得到任何结果
您好,我在绘制 topojson map 时遇到了一些问题。我的 topojson 文件具有以下属性: {"type":"Topology","arcs":[[[6566,5055] ... "tra
我在 https://github.com/mbostock/topojson/tree/master/examples 注意到 world-110m.json 和 world-110m2.json没
我正在使用 topojson 转换现有的 GeoJSON 数据集,但它没有保留属性。它遵循标准的 GeoJSON 格式,并将属性放置在与几何图形相同级别的“属性”对象中(下面的片段),但是当 topo
给定一个 data.tsv 文件: id code name 1 AL Alabama 2 AK Alaska 4 AZ Arizona 5 AR Arkansas 6
Topojson-svg 试用:我试了一下... curl -o uk.topo.json 'http://bost.ocks.org/mike/map/uk.json' #get an online
我是这方面的新手,基本上对自己在做什么一无所知。(仅供引用,我正在完成本教程: http://bost.ocks.org/mike/map/ ) 我正在尝试让 topojson 工作。我已经成功安装了
我一直在评估在给定投影的情况下将像素空间与距离(以实际单位表示)联系起来的不同方法。我发现以下内容非常有帮助: var actual_map_bounds = d3.geo.bounds(this_t
您好,我正在尝试在 jupyter 笔记本中使用 Folium 渲染这张 map 。 https://github.com/kthotav/TopoJSON-Maps/blob/master/usa/
我是一名优秀的程序员,十分优秀!