MAUI集成地图首选官方Microsoft.Maui.Controls.Maps(支持iOS/Android原生地图),需配置平台权限与XAML/C#代码;国内项目推荐高德Web方案(JS API+WebView),需申请Web Key并确保DOM加载完成后再初始化。

MAUI 集成地图控件主要有两种路径:一是用官方内置的 Microsoft.Maui.Controls.Maps(基于各平台原生地图,如 iOS 的 MapKit、Android 的 Google Maps);二是对接国内地图 SDK(如高德、百度),需手动绑定或 Web 集成。选哪种取决于你的目标平台、合规要求和功能需求。
用官方 Maps 控件快速上手
这是最轻量、跨平台支持最稳的方式,适合展示位置、打点、画线等基础场景。
- Android 必须在
AndroidManifest.xml添加定位权限:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> - iOS 需在
Info.plist加描述键:<key>NSLocationWhenInUseUsageDescription</key><string>需要访问您的位置以显示地图</string> - XAML 中直接引用控件:
<map x:name="MyMap" maptype="Street" isshowinguser="True"></map> - C# 中设置初始视野和交互:
用MapSpan.FromCenterAndRadius()定义中心与缩放范围;
绑定MapClicked事件响应点击,用Pin添加图钉。
集成高德地图(推荐国内项目)
官方 Maps 在国内无法加载地图瓦片,必须换用高德或百度。推荐 Web 方式接入,兼容性好、无需原生绑定。
- 去高德开放平台注册账号,创建应用,获取 Web 端 Key(注意不是 Android/iOS SDK Key)
- 在 MAUI Blazor 或 WebView 页面中引入高德 JS API:
下载loader.js放入wwwroot,HTML 中通过 script 引入;
初始化时调用AMap.initAMapApiLoader({ key: 'your-key' }) - 确保容器有明确宽高(如
style="width:100%;height:500px;"),且等待 DOM 加载完成再 new AMap.Map() - 若需定位,调用
AMap.Geolocation并处理用户授权逻辑(iOS/Android 需额外配置隐私弹窗)
集成百度地图(适用于 DCloud 或原生混合方案)
如果你用的是基于 uni-app 或 plus.maps 的 MAUI 混合架构(比如某些 MUI 封装项目),百度更常见。
标签: javascript java html uni-app android js json go app access a
还木有评论哦,快来抢沙发吧~