如何使用map api显示地址的位置?

时间:2011-07-16 00:20:48

标签: android

我一直在做很多研究,还没有文章告诉你如何实际显示实际地址的位置。如果有人知道一个很好的教程,请告诉我。也可以随意留下教程。谢谢

更具体地说,我想拿一个地址并在地图上找到它。我知道我将不得不使用地理编码。但我不想要拉特和勒昂。实际位置

<?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"

/&GT;

2 个答案:

答案 0 :(得分:3)

这个问题是使用地图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中的互联网权限。

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

答案 1 :(得分: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