You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin中使用Google Map ID并应用Google Maps Platform样式

Xamarin.Android 实现Google Maps Platform云样式应用方案

前置准备

你需要先在Google Cloud Console完成以下配置:

  • 创建自定义地图样式并绑定到地图ID(Map ID)
  • 确保你的Google Maps API密钥和上述地图ID属于同一个Google Cloud项目,且已经开启Google Maps Android SDK权限
  • 安装最新版Xamarin.GooglePlayServices.Maps NuGet包,要求版本≥118.0.0(对应原生SDK 18.0.0及以上,是Map ID功能的最低支持版本)

实现方式(对应原生Java实现的Xamarin C#转换)

方式1:布局XML中直接指定Map ID

在你的布局文件(Resources/layout/xxx.axml)中给地图控件添加mapId属性即可:

<fragment
    android:id="@+id/map_fragment"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:mapId="替换为你自己的Map ID字符串" />

如果使用MapView控件,添加同样的app:mapId属性即可生效。

方式2:代码动态创建时传入Map ID

如果你需要动态生成地图实例,通过GoogleMapOptions传入Map ID:

// 构造带Map ID的地图配置
GoogleMapOptions mapOptions = new GoogleMapOptions()
    .InvokeMapId("替换为你自己的Map ID字符串");
// 创建地图实例
SupportMapFragment mapFragment = SupportMapFragment.NewInstance(mapOptions);
// 提交到Fragment管理器
SupportFragmentManager.BeginTransaction()
    .Replace(Resource.Id.fragment_container, mapFragment)
    .Commit();
// 监听地图加载完成
mapFragment.GetMapAsync(this);

实现IOnMapReadyCallback接口获取地图实例:

public void OnMapReady(GoogleMap googleMap)
{
    // 地图实例已经自动应用Map ID绑定的云样式,无需额外配置
    // 可在这里继续添加标记、调整视角等其他地图操作
}

注意事项

  • 云样式优先级高于本地JSON样式配置,如果同时设置了本地样式和Map ID,会优先加载云样式
  • 若样式未生效,优先检查Map ID拼写是否正确、API密钥是否有对应权限、Play Services Maps版本是否符合要求

内容的提问来源于stack exchange,提问作者Frendy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:06:03