获取Android应用程序的当前位置地址

发布于 2024-10-17 17:56:48 字数 215 浏览 4 评论 0原文

我不需要显示地图。但是,我需要使用 gps/3g 网络来定位我当前的位置地址(不是长和纬度),然后将其添加到自动短信响应中,以通知某人我当前无法回复,&包括我当前位置的字符串地址。 我的短信功能可以正常工作,只需要找出一种访问 GPS 并提取地址的方法。我看过纬度/经度的示例代码。也许我需要将纬度/经度转换为谷歌地图 API 中的地址?我不确定如何去做。 欢迎任何建议/代码片段/类似教程! 谢谢。 :)

I do not need to display a map. However, I need to use the gps/3g network to locate my current positions ADDRESS (not long and lat) this will then be added to a automated sms response to inform a person that I currently cant reply, & the include the string address of my current location.
I have the sms stuff working, just need to figure out a method of accessing the gps and pulling an address. I have seen sample code for lat/long. Perhaps I need to convert lat/long into an address within the google maps API? I am unsure howto go about it.
Any advice/code snippets/similar tutorials welcome!
Thanks. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我一直都在从未离去 2024-10-24 17:56:48

有两个步骤:

  1. 获取当前位置 - 纬度和纬度。经度、使用 GPS、网络、最后已知位置等。 Android 位置文档包括示例代码。

  2. 使用 Android Geocoder 类请求查找以转换纬度/经度到一个地址(您可以轻松地从中提取城市、国家、街道等)。具体来说,需要使用 getFromLocation() 方法

注意:

  • getFromLocation() 方法返回一组匹配项。在某些情况下,您可以向用户展示一组(例如 5 个)并让他们选择最好的一个,或者您可以只使用第一个,假设它是最好的。
  • 请记住,这两个调用都可能需要时间。 GPS/网络可能需要一段时间才能提供位置。同样,对 getFromLocation() 的调用可能需要一些时间,因为它会通过网络到达 Google 地图 API。因此,至关重要的是,您对各种场景使用广泛的错误处理,并且这两个调用都移动到单独的线程上,这样您就不会锁定应用程序用户界面(查看 AsyncTask)
  • Geocoder 类后端仅存在于 Google 上- 批准的设备。因此,在任何没有 GMail/市场/地图的设备上,查找基本上都会失败。

There are two steps to this:

  1. Get the current location - latitude & longitude, using the GPS, network, last-known location etc. The Android location documentation includes sample code.

  2. Use the Android Geocoder class to request a lookup to convert the lat/long to an Address (from which you can easily extract city, country, street, etc). Specifically, you need to use the getFromLocation() method

Note:

  • The getFromLocation() method returns a SET of matches. In some scenarios you can show the user a set (say 5) and let them choose the best one, or you can just use the first one, assuming it's best.
  • Remember that both these calls can take time. The GPS/network may take a while to provide a location. Likewise the call to getFromLocation() may take time, as it goes over the network to the Google Maps API. Therefore it is critical that you use extensive error handling for the various scenarios AND that both these calls are moved onto a separate thread so you don't lock up the app user interface (look into AsyncTask)
  • The Geocoder class backend is only present on Google-approved devices. So the lookup will basically fail on any device that doesn't have GMail/Market/Maps on it.
北城挽邺 2024-10-24 17:56:48

答案在这里: http://developer.android.com/reference/android/ location/Geocoder.html

您需要创建 Geocoder 对象并调用 getFromLocation(double latitude, double longitude, int maxResults)

Geocoder gCoder = new Geocoder(myContext);
ArrayList<Address> addresses = gCoder.getFromLocation(123456789, 123456789, 1);
if (addresses != null && addresses.size() > 0) {
    Toast.makeText(myContext, "country: " + addresses.get(0).getCountryName(), Toast.LENGTH_LONG).show();
}

The answer is here: http://developer.android.com/reference/android/location/Geocoder.html

You need to create Geocoder object and call getFromLocation(double latitude, double longitude, int maxResults)

Geocoder gCoder = new Geocoder(myContext);
ArrayList<Address> addresses = gCoder.getFromLocation(123456789, 123456789, 1);
if (addresses != null && addresses.size() > 0) {
    Toast.makeText(myContext, "country: " + addresses.get(0).getCountryName(), Toast.LENGTH_LONG).show();
}
傾城如夢未必闌珊 2024-10-24 17:56:48

如您所知,要获取位置地址,您可以使用 google GeoCoder

除此之外要通过提供纬度和经度来获取位置地址,您可以使用此 API。这比 google Geocoder 更可靠且更快。这里我附上链接和小示例...

API url -

https://maps.googleapis.com/maps/api/地理编码/json?latlng=

您可以在 url 的等号旁边连接纬度和经度值。

示例 -

lat = 6.123456

lng = 79.123456

字符串 url =

"https://maps.googleapis.com/maps/ api/geocode/json?latlng=lat+","+lng";

这将返回一个漂亮的jsonObject,您可以使用它,只需尝试一下即可。目前我正在使用此 API 进行位置服务,并且它比普通的 google geoCoder API 更快。要捕获 json 响应,您可以使用 volley 或任何东西。Happy 编码。

As you know for getting location address you can use google GeoCoder

beside that for get location addresses by providing latitude and longitude you can use this API.this is reliable and more faster than google Geocoder.Here i attach the link and small example...

API url -

https://maps.googleapis.com/maps/api/geocode/json?latlng=

you can concatenate latitude and longitude value next to equal sign at the url.

example -

lat = 6.123456

lng = 79.123456

String url =

"https://maps.googleapis.com/maps/api/geocode/json?latlng=lat+","+lng";

this will return a nice jsonObject and you can play with it, just try this.Currently im using this API for my location services and its more faster than normal google geoCoder API.To catch the json response you can use volley or anything.Happy coding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文