Android集成Google Map

一、参考文档

API文档 链接
Google Map地址 https://console.cloud.google.com/google/maps-hosted/build?
Google Map SDK for Android https://developers.google.com/maps/documentation/android-sdk?hl=zh-cn
Google Maps Platform 安全指南 https://developers.google.com/maps/api-security-best-practices?hl=zh-cn#restricting-api-keys

二、应用中引用 Google Map

1. 获取 API 密钥

  • 访问Google Cloud Console,创建一个新项目或选择一个现有项目。

  • 在侧边栏中选择 "API 与服务">"凭据",并点击 "创建凭据">"API 密钥"。

  • 下载 JSON 格式的 API 密钥文件,并记下 API 密钥。

2. 获取 API 密钥

  • 打开项目的模块级build.gradle文件,在dependencies部分添加以下内容:

    implementation 'com.google.android.gms:play-services-maps:18.0.2'

3. 配置 AndroidManifest.xml

  • 在AndroidManifest.xml文件中,添加必要的权限,如获取位置信息的权限:

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  • 在<application>标签中,添加 API 密钥配置:

    <meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY_HERE"/>

  • 确保将YOUR_API_KEY_HERE替换为实际获取的 API 密钥。

4. 在布局文件中添加地图组件

  • 可以选择添加MapView或SupportMapFragment。例如,添加SupportMapFragment到activity_main.xml中:

    <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent"/>

5. 在 Activity 中初始化地图

复制代码
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
               .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        // 在这里可以设置地图的初始位置、缩放级别等
        LatLng location = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions().position(location).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 10));
    }
}

如果需要显示用户当前位置,还需要在onMapReady方法中检查并请求位置权限,并启用位置追踪功能。

三、Google Maps Platform 安全指南

不受限制的 API 密钥来访问 Google Maps Platform 服务。这些密钥可能已公开,容易被滥用。当您从公共环境(例如网站或移动应用)加载 Google Maps Platform 服务时,必须设置适当的应用密钥限制,以确保您的密钥只能在您的应用环境中使用。

1. 为 API 密钥设置应用限制

  • 在 Google Cloud 控制台中,打开 Google Maps Platform 的"凭据"页面。

  • 选择您要设置限制的 API 密钥。

  • 在密钥限制下的"修改 API 密钥"页面中,选择设置应用限制。

  • YouTube配置教程: https://youtu.be/2_HZObVbe-g?si=l8I_maqYMXAGlJvm

  • Application restriction 下面选择 Android apps

  • ADD AN ITEM 填入你的 Android 应用包名(例如 com.example.myapp)以及 SHA-1 指纹

  • API restriction 下面选择 **Restrict key,**在 "API 限制" 中,仅勾选 Maps JavaScript API 和 Places API
相关推荐
秋天爱美丽34 分钟前
css实现圆角+边框渐变+背景半透明
前端·css
jingfeng51438 分钟前
C++ STL-string类底层实现
前端·c++·算法
cyforkk1 小时前
Hexo 双分支部署指南:从原理到 Netlify 实战
前端
小小愿望1 小时前
前端读取与导出XLSX文件实战指南(React+Ant Design)
前端
小小愿望1 小时前
JavaScript生成随机数的全面指南:别再只会用Math.random()了!
前端
用户847181054191 小时前
wps加载项ribbon.js 与 ribbon.xml 的交互
前端
Jackson__2 小时前
RAG究竟是什么?一文搞懂大模型的记忆增强术
前端
雲墨款哥2 小时前
JS算法练习-Day10-判断单调数列
前端·javascript·算法
前端市界2 小时前
前端视角: PyQt6+Vue3 跨界开发实战
前端·qt·pyqt
阅文作家助手开发团队_山神2 小时前
第四章:Flutter自定义Engine本地依赖与打包流程
前端·flutter