【问题标题】:How do I figure out longitude and latitude coordinates to create a 1 mile radius around a user's location?如何计算经度和纬度坐标以在用户位置周围创建 1 英里半径?
【发布时间】:2014-02-26 01:00:29
【问题描述】:

如何计算经度和纬度坐标以在用户位置周围创建 1 英里半径?我不介意它需要多少坐标,但我想围绕一个位置创建一个圆形半径。

例如:

如果用户的位置是=

Latitude: 44.947 Longitude: -93.098

然后我如何计算出 8 组经度和纬度坐标在上述位置周围形成 1 英里半径。

(上例中的 8 是斜体,因为我不介意它是否小于或大于 8)

我该怎么做?

到目前为止的代码:

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();

有人有什么想法吗?

虽然我很高兴人们试图提供帮助,但下面给出的答案并没有回答这个问题。

【问题讨论】:

  • This 应该可以帮助您开始一些基本的转换。可能有更好的方法,但使用一些几何图形,您可以找到 8 个点
  • 所以你想在用户周围 1 英里的圆上创建一个地理坐标?为什么?
  • 是的,你知道怎么做吗?与 api 一起使用。这是一个要求,我正在试图弄清楚如何确定这些
  • 这应该让你开始en.wikipedia.org/wiki/Geographical_distance 但我仍然不明白这个用例。
  • 这里的最终目标是什么?你想在地图上画一个圆圈,还是只知道这 8 个点的 lat/lng?

标签: java android google-maps maps coordinates


【解决方案1】:

请记住,我在 Android 方面没有经验,所以如果这不适用,请忽略我。

对于网络版,实现您正在寻找的最简单的方法是使用绘图 API 以您的用户位置为中心创建一个您正在寻找的半径(在本例中为一英里)的圆。然后,您可以使用内置方法来查找该对象的角边界点(不幸的是矩形),从而为您提供您正在寻找的长/纬度。

【讨论】:

    【解决方案2】:

    如果您想在地图上创建一个圆圈,请执行以下操作:

    1) 获取对您的地图片段的引用:

    GoogleMap = MyMap;
    MyMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map_id)).getMap();
    

    2) 画圆:

    MyMap.addCircle(new CircleOptions().center(new LatLng(latitude,longitude)).radius(0.00062).fillColor(0x88000000).strokeColor(0x44000000).strokeWidth(2));
    

    1 米 = 0.000621371 英里

    如果您不知道如何使用 Google Maps API v2,请关注this link

    【讨论】:

    • 感谢您的洞察力。但我没有在谷歌地图中使用这些坐标。你知道如何获得奇异的经度和纬度对,以在用户位置周围创建一个半径圆,如上所述
    • 为什么要绘制0.6毫米的半径?这似乎不值得!
    • 抱歉,我不知道该怎么做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    相关资源
    最近更新 更多