google地图 MapFragment

263 篇文章 2 订阅
164 篇文章 0 订阅
MapView ,MapActivity 这种的局限在于,必须要继承MapActivity,否则无法使用MapView, MapFragment 这种的局限在于,必须要安装Google Play Service ,也就是说必须是原生rom。而且sdk要在12以上
打开sdk manager--在Extras里把Android Support Libaray 和 Google Play Services都安装,lib和samples都在sdk_path/extra/google/google_play_services下。导入../lib_project作为自己项目的libaray
这一步完了之后在manifest.xml文件里添加权限和api key。代码如下

<permission
android:name="com.example.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>

com.example替换成自己project的package

<uses-permission android:name="com.example.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!--My Location-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--Maps API needs OpenGL ES2.0.-->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>

放在application声明里

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="appkey"/>

在layout xml里加入MapFragment声明

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"/>

activity不变,extends Activity就可以了。 不需要继承MapActivity了。 
注意,debug状态下是不可以显示地图的,一定要在正式签名下map才会显示出来。
install下应该就能看到map了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用谷歌地图 API 获取地址信息的具体方法如下: 1. 在 Google Cloud Console 中创建一个项目,并启用 Maps JavaScript API。创建项目和启用 API 的详细步骤可以参考谷歌地图 API 的文档。 2. 在应用程序中添加 Maps SDK for Android 库,可以使用 Gradle 进行依赖管理。在 `build.gradle` 文件中添加以下依赖项: ```gradle implementation 'com.google.android.gms:play-services-maps:17.0.0' ``` 3. 在应用程序中创建一个 `GoogleMap` 对象,并使用 `Geocoder` 类的 `getFromLocation` 方法获取地址信息。示例代码如下: ```java // 创建 GoogleMap 对象 GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); // 获取当前位置经纬度 double latitude = googleMap.getMyLocation().getLatitude(); double longitude = googleMap.getMyLocation().getLongitude(); // 创建 Geocoder 对象 Geocoder geocoder = new Geocoder(this, Locale.getDefault()); // 获取地址信息 List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1); if (addresses != null && addresses.size() > 0) { Address address = addresses.get(0); String country = address.getCountryName(); String city = address.getLocality(); String street = address.getAddressLine(0); // 其他地址信息也可以从 Address 对象中获取 } ``` 其中,`R.id.map` 是一个 `MapView` 控件的 ID,用于显示地图。`latitude` 和 `longitude` 是当前位置的经纬度,可以通过 `GoogleMap` 对象的 `getMyLocation` 方法获取。`geocoder.getFromLocation` 方法会返回一个包含地址信息的 `Address` 对象列表,我们可以通过 `Address` 对象的方法获取各种地址信息。 需要注意的是,使用谷歌地图 API 需要申请 API key,然后将 API key 添加到应用程序的 `AndroidManifest.xml` 文件中。具体的申请方法和使用说明可以参考谷歌地图 API 的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值