当前位置: 首页 > 知识库问答 >
问题:

在Android或REST中从lat/long生成地址

蒋向笛
2023-03-14

我正在使用一个与REST web服务交互的Android应用程序。我们在手机中有一个功能,以便在谷歌原生地图中选择一个位置,并发送到服务器。

由于某些原因,我们需要得到该点的地址在网站打印出来。

如果我们使用地理编码器从手机中的Latitude和Longtitude获取地址并将其发送给REST的话,我们需要在手机中消耗一些内存、数据和带宽。

如果我们在剩下的部分中进行,由于应该为许多正在使用该应用程序的用户进行,因此该过程可能会很耗时。(这是我们REST开发人员所相信)

你能帮我提一下你的意见吗?哪种想法更好,为什么?

共有2个答案

利稳
2023-03-14

请使用此功能

String getAddress(Double lat,Double lon){String address=“”;

    GeoPoint point = new GeoPoint((int) (lat * 1E6),
            (int) (lon * 1E6));

    Geocoder geoCoder = new Geocoder(mContext, Locale.getDefault());
    try {
        List<Address> addresses = geoCoder.getFromLocation(
                point.getLatitudeE6() / 1E6, point.getLongitudeE6() / 1E6,
                1);

        if (addresses.size() > 0) {
            for (int index = 0; index < addresses.get(0)
                    .getMaxAddressLineIndex(); index++)
                address += addresses.get(0).getAddressLine(index) + " ";
        }

    } catch (IOException e) {
        e.printStackTrace();
    }

    return address;
}
阎涵忍
2023-03-14

您正在做的工作被称为“反向地理编码”(https://developers.google.com/maps/documentation/geocoding/?hl=fr#reversegeocoding)

关于你的问题:我知道你反向地理编码一些用户的位置和gengrated地址将被许多其他用户使用。

知道:1。中反向测地成本很高。中获得的地址将被许多用户使用。每个用户都将使用其中的许多地址,那么您应该在服务器端进行操作,并将所有地址放在一条消息中。如果你能把地址的数量限制在唯一有用的地址上,那会更好(可能是你附近的地址,但要看你的app功能)

重要的是:在移动设备上,对性能至关重要的不是传输的数据量而不是消息的数量:带宽很好,但延迟很可怕。所以在您的服务器API中,避免原子操作,尽可能多地聚合!

 类似资料:
  • 我正在考虑Rchart/传单创建一个闪亮的应用程序房屋销售在我的县。任何时候都有几百套房子出售。想要为所有人绘制街道地址到地理位置的地图(lat/long)并在地图上显示它们。所以,我正在寻找一个r包,服务或数据库,可以映射街道地址到地理位置。

  • 在我的应用程序中,我想实现一个功能,如果我到达半径50米内,根据给定的时间,我想要吐司显示。我不知道如何计算电流半径,以及如何实现,请帮助。

  • 我有一个谷歌地图生成的以下脚本在下面的URL http://apryll.co.in/maps/index.php 我有一个下拉在页面选择不同的位置。 http://apryll.co.in/maps/index.php 当我选择下拉时,它会将不同位置的纬度和经度作为ajax调用的响应。 现在我想用新收到的lat和longs在响应文本中重新绘制google地图 万分感谢

  • 我使用以下类型生成Web服务响应类: 它生成一个具有保护长删除的类; 但是我想生成一个数组。添加minOccurs="0"maxOccurs="unbed"会生成List。 请帮忙。

  • 在php中获取当前位置的纬度和经度的代码是什么。后来我必须使用这个lat-long值在google map中绘制标记。

  • 我在学Android。现在我正在开发一个使用地图API的应用程序。到目前为止,我做了以下操作:-我长时间点击了地图,并打开了一个新的ActivityCyclickedMap,其中显示了我点击的位置的lat和lon-我点击了save按钮,并将lat和lon添加到服务器和我的本地数据库中 我想做的事情是这样的:-当我打开地图时,我想让它显示一个标记,使用数据库中的lat和lon