- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 D3 JavaScript API 制作波多黎各的交互式 map 。然而,波多黎各政府使用的坐标系是旧的兰伯特坐标系系统。 D3 是否能够处理此类坐标?有没有具体的投影处理它们? (我浏览了投影维基,但找不到任何东西有用。)如果没有,我能做些什么来将坐标转换为标准坐标经度/纬度?
最佳答案
您的投影很可能是 State Plane Coordinate System 的一部分1983 年,在 this NOAA PDF 的第 72 页上定义.您也可以通过搜索 “puerto rico” 找到它。在 spatialreference.org (例如,EPSG:2866)。
您可以使用ogr2ogr通过指定 EPSG:4326 将您的 shapefile 重新投影到纬度和经度 ( WGS84 ) 目标投影。例如,要从投影的 shapefile 生成球坐标中的 GeoJSON,您可以说:
ogr2ogr \
-f GeoJSON \
-t_srs EPSG:4326 \
output.json \
input.shp
一旦您获得经纬度的几何图形,请引用任何 D3 地理示例以了解如何在您选择的投影中显示您的 shapefile。
或者,您可以使用投影坐标按原样显示。查看projected TopoJSON example了解更多详细信息,但简而言之,您可以使用 topojson
command-line tool创建一个 TopoJSON投影坐标中的文件。那么你根本不需要重新投影!例如,如果你想在 960x500 的空间中显示它:
topojson \
--width 960 \
--height 500 \
--margin 20 \
-o output.json \
-- input.shp
(您甚至可以添加一个 -s .25
参数来将几何简化为屏幕分辨率,这对于节省空间和提高渲染速度很有用。)
最后,如果您确实最终重新投影到纬度和经度,但您仍想在其官方国家平面投影中显示波多黎各,您可以使用 d3.geo.conicConformal
定义该投影,兰伯特圆锥共形投影:
var projection = d3.geo.conicConformal()
.scale(5000) // adjust to your liking
.rotate([66 + 26/60, 0])
.center([0, 17 + 50/60])
.parallels([18 + 2/60, 18 + 26/60])
.translate([width / 2, height / 2]);
另见 project to bounding box example查看如何计算比例并自动转换感兴趣的特征。
关于javascript - 在 D3 中使用或转换 Lambert 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17453123/
如何使用 mapproj 包进行朗伯方位等积投影? http://cran.r-project.org/web/packages/mapproj/mapproj.pdf 有 azequalarea()
我有来自 here 的 FAA 剖面图.每个包都包含相关图表的 .tif、描述图表的 .htm 文件和 .tfw 世界文件。 map 投影为朗伯共形圆锥投影。 我正在开发一个 C# 应用程序,它需要能
我正在尝试在我的祖国奥地利的 SVG map 上投影一组点([long, lat] 元组): https://commons.wikimedia.org/wiki/File:Austria-geogr
一种计算乘积对数函数的函数,也称为兰伯特 W 函数。 通过使用它 double lam = LambertW(1); 最佳答案 metanumerics .net library在 Github 上实
我正在尝试使用 D3 JavaScript API 制作波多黎各的交互式 map 。然而,波多黎各政府使用的坐标系是旧的兰伯特坐标系系统。 D3 是否能够处理此类坐标?有没有具体的投影处理它们? (我
我正在做一个项目,发现自己需要一个函数来至少获得 W(x) 的近似值,Lambert W function ,其中 x 可以是任何实数。我在 Java 工作。当我搜索时,我找不到 W 在 java 中
我正在尝试合并两个数据库以合并两个客户的网站。但是,客户端 A 一直使用常规的纬度/经度对进行地理定位,而客户端 B 使用兰伯特 72 (X/Y) 坐标。 我已经构建了一个应该转换这些坐标的脚本(因为
我有 Lambert 共形圆锥投影 x,y 信息。 我需要 WGS84 坐标。但我不知道什么是lcc。 我在下面提供了 lcc 信息。 有没有办法在 r 中将 lcc 转换为 WGS84? examp
我了解 Lambert 和 Phong 在一般计算机图形学中的区别。我也了解我们如何使用three.js 更改和创建我们自己的 Material 。但是我无法计算 MeshLambertMateria
现在我有了Lambert 2的地理坐标,像这样 X:595833.007, Y:2418927.985 为了在谷歌地图上显示这个地方,我需要WSG84的相关地理坐标,像这样 X:48.7687954,
我在 Three.js 中创建了一个自定义几何体。现在,我想创建一个使用平滑阴影 Lambert Material 的网格。使用循环,我创建了顶点数组,然后是面,然后我调用了 geometry.com
我有一个栅格,是从 netcdf 中获得的(Lambert Conic Conformal projection): library(meteoForecast) wrf_tempor
我有一个制作星星的功能,我们开始吧: function CreateStar( radius, thickness, isWireframe, starColor) { //
好吧,我刚开始学习three.js,这对我来说完全是全新的。所以我正在写这些系列的 hello world 有点像脚本。好吧,我编写了下面的脚本来使用 MeshBasicMaterial 生成一个立方
我正在尝试转换找到的 wind grib 文件 here , 转换为海洋导航/航路软件可以读取的格式,该软件需要纬度/经度而不是朗伯投影。 我尝试按照此处找到的步骤使用 wgrib2 进行转换,但失败
我正在尝试使用 Python 中的 Lambert 函数来解决一个问题;但是,在使用 Canopy 时,我收到了 NaN 响应。我的等式如下: from scipy.special import la
我是一名优秀的程序员,十分优秀!