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文件中,添加必要的权限,如获取位置信息的权限:

  • 在<application>标签中,添加 API 密钥配置:

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

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

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

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
相关推荐
777VG26 分钟前
PostgreSQL +martin将多张表输出成一个 MVT
前端·数据库·postgresql
mayaairi1 小时前
JS循环语句深度解析:嵌套for、while与do...while
开发语言·前端·javascript
To_OC1 小时前
啃完流式输出:从一个卡顿的 LLM 接口开始,我搞懂了数据流到底怎么 “流”
前端·javascript·llm
阳光是sunny1 小时前
LangGraph实战教程:defer延迟节点——让收尾工作自动排到最后
前端·人工智能·后端
kyriewen2 小时前
我用了三周Claude Code Skills——总结出5条铁律,第3条最反直觉
前端·ai编程·claude
阳光是sunny2 小时前
LangGraph实战教程:控制流详解
前端·人工智能·后端
Rex叶然2 小时前
ScreenMatch适配安卓屏幕脚本,用于老项目
android·screenmatch·安卓屏幕适配
阿pin2 小时前
Android随笔-Activity启动流程深度分析
android·activity启动流程
格尔曼Noah3 小时前
Safari浏览器中如何只允许指定网站下载
前端·safari
zzq77973 小时前
加固包闪退四象限定位:targetSdk 与保护策略实战解析
android·安全·安卓·安全架构