【问题标题】:How to display location of address using map api?如何使用地图 api 显示地址的位置?
【发布时间】:2011-07-16 00:20:48
【问题描述】:

我一直在进行大量研究,但还没有文章告诉您如何实际显示实际地址的位置。如果有人知道一个很好的教程来说明这一点,请告诉我。也可以随时在这里留下教程。谢谢

更具体地说,我想获取一个地址并在地图上找到它。我知道我将不得不使用地理编码。但我不想要纬度和经度。实际位置

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

/>

【问题讨论】:

    标签: android


    【解决方案1】:

    这个问题正在寻求使用地图 api 的帮助,但如果这对您的应用程序来说不是必需的,我可以在没有地图 api 帮助的情况下让它工作,而且它似乎工作得很好。获得地址后(如果没有城市、州和/或邮政编码,则不必包括它们),请使用以下内容:

    Uri uri = Uri.parse("https://www.google.com/maps/place/" + streetAddress);
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);
    

    地址示例:“[street], [city], [state] [zip]”

    只需要AndroidManifest 中的 Internet 权限。

    这将为用户提供可用于显示给定地址的应用列表,选择该列表后,将显示给定地址的位置。如果我错了,欢迎有人纠正我,但如果没有提供城市、州和/或邮政编码,至少谷歌地图会找到最接近用户位置的物理地址,如果该地址与给出的地址相匹配本身并不是唯一的。

    【讨论】:

      【解决方案2】:

      看看 GeoCoder.getFromLocationName(name, maxResult)。该名称可以是位置名称或实际地址。您的代码将类似于以下内容,

      itemizedOverlay.addOverlay(getOverlayByAddress("1600 Amphitheatre Parkway, Mountain View, CA 94043", "Google"));
      
      private OverlayItem getOverlayByAddress(String address, String name) throws IOException {
          Geocoder geo = new Geocoder(this);
          List<Address> addresses = geo.getFromLocationName(address, 5);
          OverlayItem overlay = new OverlayItem(
                  new GeoPoint((int) (addresses.get(0).getLatitude() * 1E6),(int)(addresses.get(0).getLongitude()*1E6)),
                      name, "");
          return overlay;
      }
      

      请注意,它可能会在模拟器上失败并显示“服务不可用”。如果遇到错误,只需在真实设备上尝试即可。如果您需要更多说明,请查看http://www.anddev.org/simple_googlemaps_geocoder_-_convert_address_to_lon-lat-t2936.html

      【讨论】:

      • 谢谢你太棒了。正是我想要的。现在,唯一的问题是当我寻找位置时,屏幕只是一个灰色的网格屏幕,左下角有谷歌。我会把我的 xml 贴在上面
      • 这通常意味着您没有设置正确的 API 密钥。
      • 它不起作用,但它现在给了我这个 07-16 00:04:21.672: ERROR/MapActivity(2773): Couldn't get connection factory client 我现在可以看到地图了跨度>
      • 看看stackoverflow.com/questions/6006835/…。我只是检查了我的 LogCat 输出,并且得到了同样的错误,但这并没有破坏我的任何逻辑。
      • 这个答案对您有帮助吗?它似乎没有解决问题。也许我应该只发送地图意图而忘记将地图集成到我的应用程序中。它让我放慢了速度和令人沮丧
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      相关资源
      最近更新 更多