问题标签 [map-projections]
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.
javascript - 如何使用投影使我的绘图点在 d3.js 中平滑?
我可以使用以下代码将一些天气数据绘制到地图上。但是这些点是矩形,我想让它们更平滑。
,
我想将它们绘制得更平滑,就像类似的东西
我相信我需要研究插值、空间分析和/或 Choropleth 地图。我认为它们是不同的算法。我觉得我需要在现有分数之间填写更多分数?这样就可以制作像点一样的渐变?这在 D3 中可行吗?还是我应该考虑使用three.js 或WebGL 的东西?
r - 使用 ggmap 创建正交地图
在下面的脚本中,我读入了许多点对并在地图上画线。我正在使用 ggmap 从谷歌中提取地图来绘制这条线:
不幸的是,由于加拿大的北纬,这会导致地图顶部距离的巨大扭曲:
这可以通过切换到正交图轻松解决,我可以通过projection=mapprojection(orthographic)
在 createMap 函数中添加来更改线条绘制方式的投影,但我无法更改从 Google 获得的地图图像的投影 - 它卡在Web 墨卡托投影。有没有办法使用ggmap来做到这一点,还是我必须尝试不同的包?如果是这样,你有什么建议?
javascript - Why is scale a function of pi in D3's Mercator projection?
In every D3 map example I can find, the scale
parameter of the Mercator projection is set to equal width / 2 / Math.PI
. Is this unique to the Mercator projection? What is scale
doing that it needs to rely on pi? I'd love to have a more intuitive understanding of what's going on here, but the docs are pretty sparse.
"If scale is specified, sets the projection’s scale factor to the specified value and returns the projection. If scale is not specified, returns the current scale factor which defaults to 150. The scale factor corresponds linearly to the distance between projected points. However, scale factors are not consistent across projections."
python - 为球体上的 UV 映射转换 Simplex Map
我想动态生成一个基于单纯形的图像,该图像可以很好地映射到三个.js 中的球体上,但是我遇到了两极失真的问题。这是初始地图代码:
这会生成创建地图的数据,该地图横向平铺,但不在顶部和底部(这是理想的)。
当它被映射到三个.js 中的球体上时,就会出现问题:
由于发生 UVMapping,您最终会在两极附近夹住:
.
我怀疑解决捏合问题的最简单方法是在源图像上使用墨卡托变换,但对于我的生活,我无法弄清楚如何实现它。
有没有人有什么建议?如果您想尝试一下,可以在此处找到该项目的完整源代码。
更新:结合Three.JS 球体映射示例查看维基百科上方便的UV 映射图,我认为这些是一个很好的起点......
javascript - 单击时获取折线两点之间的所有坐标
我已经从给定的坐标设置了一条示例折线。
单击折线时,返回的坐标与构建折线的坐标不匹配。
有没有办法在单击折线时获取属于给定坐标列表的折线两点之间的所有坐标?
此外,当地图缩放时,单击的标记会偏离折线的路径。
maps - 将纬度/经度转换为地理参考地图上的相对 X/Y 坐标
在我知道三个角(或任何三个非对齐点)的坐标(纬度/经度)的地图上,我有位于地图上的几个点的坐标(纬度/经度)。
我想要的是地图点的相对坐标(相对于左上角的 x/y)。
我也对其他转换(x/y 到 lat/lng)感兴趣。
我的地图很小(小于 10 公里 x 10 公里)我需要使用投影系统还是可以假设我的表面完全平坦并使用线性转换?
编辑:我不知道(而且我无法知道)我的背景地图使用哪种投影。我只知道 3 个地理参考点。
一种解决方案是使用线性转换:
如果我的三个点是 A (xA,yA), B (xB, yB) , C (xC,yC) 和我想要定位 X (x, y) 的点。
我可以计算a
,然后b
在AX = aAB + bAC
lat/lng 参考中
x = xA + a * (xB-xA) + b * (xC - xA)
y = yA + a * (yB-yA) + b * (yC - yA)
但看起来我错过了什么?
相关问题:如何将纬度/经度映射到扭曲的地图?
map - 如何在 TileMill 中使用 equirectangular 投影?
我需要从 TileMill ( http://en.wikipedia.org/wiki/Equirectangular_projection ) 中获取等角投影地图。
我在网上找到了一个教程,解释了如何通过更改“project.mml”文件中的项目设置来获得不同的投影。(http://blog.kartena.se/using-tilemill-without-spherical-mercator/)
我发现我认为是对等角投影的必要 srs 代码的描述:
然而,地图不只是显示一条细长的水线,没有别的,所以很明显这不正确。我一直在寻找有关如何设置它的更多细节,但我完全被难住了。Web 墨卡托投影不适合我的目的。
有人知道怎么做吗?
非常感谢。
小号
geolocation - 将纬度/经度坐标映射到地图的位图图像,而不是固定到一个投影
我目前正在开发一小块 (Java) 软件,它应该能够显示地图以及该地图中的当前 GPS 位置。我对此完全陌生,但很明显我必须进行某种坐标转换。我找到了“Proj4J”,它似乎可以为我做很多事情。现在,我拥有什么以及我想做什么:
- 我有一张地图的位图。该地图的投影可以是任何“明确定义”的投影,例如 Lambert 或 Mercator。我无法将其修复为一个投影。
- 我有来自“标准”GPS 接收器的 GPS 坐标。我相信他们在 WGS84 中是纬度/经度,对吗?
现在我的问题是:我必须将 GPS 位置映射到地图位图中的基本“屏幕坐标”。为此,我假设需要参考点,我知道它们的纬度/经度和相应的像素位置。由于我的地图可以轻松覆盖几百公里的范围,已知点和任意位置之间的线性插值可能不适用于所有类型的投影,我说对了吗?到目前为止,我已经阅读了“将给定图片上的长/纬度转换为像素 x/y”,但这涉及墨卡托投影,我相信线性近似会比兰伯特图更好。我想整个过程如下:
- “校准”地图,即识别位图中已知纬度/经度的两个位置,从而获得它们的像素位置。
- 使用从“lat/lon WGS84”到“地图投影”的 Proj.4 转换将这些参考点从 (1.) 映射到地图坐标中。
- 从 (2.) 中获取点并将它们再次映射到允许对像素位置进行线性插值的投影,我将其称为“像素投影”。
- 现在我在“像素投影”中有两个坐标参考点及其对应的像素位置。
对于来自 GPS 接收器的纬度/经度值,请执行以下操作:
- 使用“地图投影”将位置转换为地图位置。
- 从 (1.) 获取地图位置,并使用上面的“像素投影”将其转换为坐标。
- 由于“像素投影”中的所有距离都保持不变(即像素投影的条件!),因此可以对从(2.)得到的坐标与上面参考点的已知位置进行插值。
这里有几个大问题:
- 这是要走的路吗,使用最终的“像素投影”来允许线性插值?
- Proj.4 会是什么类型的投影,可以用它来完成吗?
- 可以“返回” - 我有一个像素位置并希望完成纬度/经度(如“像素位置”->“像素投影”->“地图投影”->“纬度/经度”)?
非常感谢,詹斯。
matlab - Matlab m_map 投影 m_ll2xy 单位
对于我正在使用的投影
lon
接下来,我使用以下内容将和lat
点的数组转换为x y
坐标。
我得到的[x,y]
是一些我不明白的单位。例如x
经度-180和180度对应的是-pi和pi,而y
纬度-85到85度对应的是-3.1313和3.1313。
我想获得以[x,y]
公里为单位的单位,据我所知,它必须从一个固定点定义。我怎样才能做到这一点?谢谢
r - 将极地立体投影转换为R中的纬度网格
我有一个极地立体网格(尺寸为 6667 x 6667 单元格,大小为顶部:3333500,左侧:-3333500,右侧:3333500,底部:-3333500)。该投影的纬度为真实比例南 -71 度,基准 WGS84。网格间距为 1000 m
我想从中制作一个纬度长的网格,但遇到了麻烦。我可能会完全错误地解决这个问题,但这是我迄今为止所拥有的:
spTransform 的输出不正确。有没有人有什么建议?谢谢!