如何在不使用 Google 地图的情况下将纬度/经度转换为 HTML5 坐标?

Posted

技术标签:

【中文标题】如何在不使用 Google 地图的情况下将纬度/经度转换为 HTML5 坐标?【英文标题】:How to convert latitude/longitude to HTML5 coordinates without using Google Maps? 【发布时间】:2016-07-22 13:18:17 【问题描述】:

目标是在不使用 Google 地图的情况下使用坐标数组绘制路线。将标准纬度/经度坐标转换为 html5 画布坐标的最佳方法是什么?

【问题讨论】:

你看过Haversine公式吗?它将为您提供距离和角度,您可以轻松地将其转换为 x、y。 我发布了一个做得很好的答案。 请注意日期线(即第 180 条子午线)处发生的异常情况。幸运的是,穿过它的道路并不多,目前只有斐济。但是,根据您要处理的区域的大小,您可能需要编写特殊情况,即较短的距离使用反向坐标。 【参考方案1】:

我找到了一种将纬度/经度转换为点的相当简单的方法。

    获取集合的最小/最大坐标。 准备好画布尺寸。 使用浮点计算获取画布上 x 和 y 的百分比。 为 D3 提供积分。

参见 JS 小提琴: https://jsfiddle.net/12stct3y/

var bounds = 
    "minLon": -81.267555236816,
    "maxLon": -81.261039733887,
    "maxLat": 28.979709625244,
    "minLat": 28.977783203125

var dimensions = 
    width:400,
    height:150
   
function getX(x) 
    var position = (x - bounds.minLon) / (bounds.maxLon - bounds.minLon); 
    return dimensions.width*position;

function getY(y) 
  var position = (y - bounds.minLat) / (bounds.maxLat - bounds.minLat); 
    return dimensions.height*position;

不包括在小提琴中:

    旋转到北视图 根据变量边界创建维度

【讨论】:

提示:如果您不知道目标的尺寸,您可以将尺寸设置为 100*100 以获得百分比,您可以在绝对定位的顶部/左侧 css 属性中使用该百分比。跨度>

以上是关于如何在不使用 Google 地图的情况下将纬度/经度转换为 HTML5 坐标?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 Xcode、iPhone 中的谷歌地图的情况下从地址获取纬度和经度

如何在不使用本地PC转换的情况下将我在google colab中训练的tensorflow的protobuf训练模型转换为tensorflowjs?

谷歌地图上的多个标记

在不使用地图Android的情况下获取用户(纬度,经度)位置[重复]

如何在不上传 favicon 文件的情况下将 favicon 添加到 Google colab 上的 Flask 路由?

在不使用地图 android 的情况下从邮政编码中获取纬度和经度