问题标签 [mercator]
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 - Leaflet 和 MapBox API - 遵循地球形状的曲线
有没有人成功实现,或者找到了一个插件,允许 MapBox API 在地图上的两点之间绘制最短的线,同时考虑到地球的曲线?谷歌地图已经有了这个,见这个链接:
https://developers.google.com/maps/documentation/javascript/examples/geometry-headings?hl=nl
尝试拖动标记。我不知道在墨卡托地图上以这种方式计算路线的官方术语是什么,我会尽快编辑这个问题的标题。
.net - 使用 .NET 在静态图像地图上绘制 Lat/Lng 值
我正在使用Google Maps Image API来获取地图的静态图像。我有中心位置坐标和缩放级别。
我想要做的是在静态地图图像上放置其他 Lat/Lng 坐标,所以我应该将 Lat/Lng 坐标转换为 XY 坐标。
我的做法:
首先,我使用与此类似的墨卡托投影计算中心点的世界坐标。然后我使用下面的公式计算出静态图像的边界:
SWPoint和NEPoint是西南点和东北点的世界坐标(图像地图边界)。然后我使用以下公式计算这些点的像素坐标:
在获取边界的像素坐标后,我还使用相同的公式计算每个 Lat/Lng 点(我想在地图上绘制)的像素坐标。
为了在图像上放置某个点,我使用:
这样我就可以计算出移动点的像素数量(从左上角开始)。
这种方法是有效的,但是它并不准确,特别是当缩放级别非常高时。该点偏移了不可接受的距离。
我怎样才能使这项工作?我在这里错过了什么吗?我真的很感激帮助:)
c# - 无需外部 API 在地图图像上放置 GPS 坐标
我目前正在开发“旅行跟踪器”。目标是在从 MapQuest(或 OpenStreetMap)下载的静态图像地图上放置一些 GPS 坐标(由 GPS 设备记录)。为了实现这个目标,我遵循了以下程序:
- 找到我的 GPS 坐标集的中心 ((maxLat-minLat)/2, (maxLon-minLon)/2)
- 从 MapQuest 下载以我的“坐标集中心”为中心的 3840x3840 地图(目前固定缩放 15)
- 使用墨卡托投影(我尝试使用 EPSG:4326 或 EPSG:3857 进行球形和椭圆形投影),以米为单位获得中心的 (X,Y)
- 对于我的每一个点
- 使用墨卡托投影获取点的 (X,Y)
- 将点(X,Y)减去中心(X,y)
- 根据缩放级别和地图(平铺?)宽度将米转换为像素(我尝试了平铺宽度(256)和地图宽度(3840)
不幸的是,在一周的研究和尝试中,我没有成功地提出这些观点。
有人对这类问题有完整的解决方案吗?
谢谢
编辑#1
(删除:不一致)
编辑#2
这是一个干净的项目示例
https://dl.dropboxusercontent.com/u/429726/MapSample.zip
- 路径旋转 90°(欺骗 @MainWindow.xaml.cs:L130)
- 路径变平了
图片: https ://dl.dropboxusercontent.com/u/429726/MapSample.jpg
编辑#3
添加了多个公式
GeographicCoordinates > ToMercator() 修改
GeographicCoordinate > ToMercator() 修改
编辑#4
我已经尝试过多个公式和 Proj.Net 库,我总是以相同的形状结束(-90° &&“扁平化”)
javascript - d3 墨卡托投影测量距离(或转换)以米为单位
所以我目前正在使用它来使用 d3 中的墨卡托投影来计算多边形的面积
问题是我需要将其转换为米或公里。我不确定要使用什么公式,因为我认为它会根据缩放级别而改变,对吗?任何人都可以指出正确的方向来使这个公式正确吗?
我实际上正在考虑切换到传单只是为了获得该区域。想法?
谢谢!
xcode - 如何在没有地图视图的情况下在自定义图像上显示用户位置
我有一个区域的自定义 Photoshop 图像。
它大部分是矩形的,所以我使用谷歌地图获取了 4 个角的坐标。
我想仅将这 4 个角转换为该图像上的 x 和 y 轴,然后使用核心位置在这 4 个角内显示用户的位置(除此之外的任何内容都不是必需的)。
我可以在不使用地图视图的情况下做到这一点吗?我真的不需要那个小区域之外的任何其他功能。还是我必须在 mapkit 上覆盖自定义图块,限制视图并放大该区域并从那里开始工作?(这似乎比有墨卡托坐标方式的方式更需要资源)
任何好的教程表示赞赏!
html - D3 地图缩放事件以保持 LineString 宽度不变
在http://bl.ocks.org/d3noob/5193723的基础上,我尝试在地图上添加线串。
我在代码中做了一些修改:
放大时,线条的粗细会相应增加。
由于我的应用程序有很多线条,我希望线条宽度保持不变。有任何想法吗?如果我使用 d3 的简单“线条”对象并在 svg 上绘制,我可以控制放大/缩小时线条粗细的行为。使用墨卡托变换投影线会创建一个路径对象,控制起来非常棘手,我无法处理它。一种方法可能是重新渲染缩放操作的所有线条路径,但无法弄清楚如何有效地做到这一点。
d3.js - d3.geo.mercator 中如何使用比例尺?
我正在查看http://bl.ocks.org/mbostock/5616813上的 d3 矢量图块示例。
我想做的是在谷歌地图上布局这个,所以我用谷歌地图投影来改变它。
但是,它似乎并没有那么好用。所以我回到了这个例子,我试图理解这个例子中使用的比例和翻译,但不能..
谁能为我解释一下以下代码?
这里很容易理解中心和翻译,但这里使用的比例尺是多少?
谢谢您的帮助!
javascript - 尝试通过从父组件发送数据作为 prop 在 reactjs 组件中创建 d3 映射
我正在尝试在反应组件中使用 d3 创建世界地图。我想将数据作为道具发送到地图。我相信我需要获取 topoJSON 文件并在应用程序组件中创建几何图形的 geoJSON 文件(数组),然后将其发送到地图组件。我正在这样做:
看起来转换后的 geoJSON 是一个具有必要坐标的数组。我将其从父应用程序组件发送到子地图绘制组件。
在我的地图组件中将路径附加到我的 svg 时,它不会绘制任何内容。控制台显示一个 svg 已被渲染,仅此而已。
我使用本教程作为我的文件结构的基础:http: //nicolashery.com/integrating-d3js-visualizations-in-a-react-app/
这就是我试图绘制地图的方式:
我无法将地理数据对象发送到子组件进行渲染吗?它需要是完整的 topoJSON 文件吗?我想通过仅通过道具传递数据来尽可能保持这种反应。
math - Web 墨卡托公式吐出明显不正确的值
编辑:我只是忘记将度数转换为弧度。
我一直在尝试将一些纬度和经度坐标转换为 Web 墨卡托像素形式,而维基百科上列出的公式正在吐出明显不正确的值。维基百科说,当不缩放时,世界坐标在 X 和 Y 轴上从 0 到 256。维基百科页面上列出的公式很容易吐出超过 256 的大量值。
例如,87.7494 弧度的经度,当代入 X 轴公式时,会产生 3703.23219542。这个值远高于 256。
自己试试:(128 / pi) * (2 ^ 0) * (87.7494 + pi)
mapkit - MKMapPointForCoordinate 中使用的算法是什么?
MKMapPointForCoordinate 中使用的算法是什么?换句话说,如何在 Apple 的生态系统之外将 MKMapPoint 转换为纬度/经度,反之亦然?