【问题标题】:Mapping real world cities and calculating distance Java映射现实世界的城市并计算距离 Java
【发布时间】:2012-06-17 14:39:49
【问题描述】:

我需要能够在坐标中绘制出现实世界城市的地图,然后有一种方法来计算我给它的两个城市之间的距离……最好的方法是什么?只是具有坐标的城市对象,然后找出计算我自己或哈希图或其他东西的距离的公式......另一件事是我将如何计算城市的坐标?我说的是现实世界的城市,所以是的...... 我想知道城市的纬度和经度,然后在计算距离时以某种方式将其转换为千米......如果有人可以帮助我,我会很高兴!

非常感谢! 如果您需要更多信息,请告诉我并添加。

我主要需要的是:根据城市地图的建议和实施距离计算的线索。我不想检查我在网上创建的每个城市之间的距离,然后把它放进去,因为这似乎需要做很多工作,如果我设法找出一种算法,那么将城市添加到游戏中会更快更容易......

【问题讨论】:

    标签: java map coordinates distance


    【解决方案1】:

    首先您需要将城市名称翻译成地理坐标。 GeoNames 是一个大型的地理位置数据库,包括许多其他可用的坐标。

    当有两个城市的地理坐标时,可以用简单的公式计算距离,见How to find distance from the latitude and longitude of two locations?Great-circle distance

    【讨论】:

    • 谢谢!你能告诉我最后一件事吗:N 40° 42' 51' W 74° 0' 21' N 表示北半球 40 表示它的 40 度,但 42 和 51 是什么?
    • 如果我使用 Haversine 公式,该公式如何知道纬度和经度是在 w/e 半球的北部还是东部?我怎么能告诉它?还是仅按度数起作用..?
    • 我使用这个公式:R = 地球半径(平均半径 = 6,371km) Δlat = lat2− lat1 Δlong = long2− long1 a = sin²(Δlat/2) + cos(lat1).cos( lat2).sin²(Δlong/2) c = 2.atan2(√a, √(1−a)) d = Rc 在这里找到:movable-type.co.uk/scripts/latlong.html
    • @Trixmix:北部和东部最有可能是正值,而南部和西部是负值。请发布另一个问题并在 cmets 中留下后续。
    【解决方案2】:

    其中一部分是 GREAT CIRCLE DISTANCE - 有很多例子。

    查找城市坐标数据集可能比较棘手。

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2011-12-05
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多