百度算是云产品涉及领域即为广泛的公司了,我之前常常利用百度的智能云做MQTT平台,前阵子也使用过百度的车牌识别功能。而百度地图也是用途非常广泛的产品,本期我们将介绍如何使用百度地图API来获取地图信息。
搜索百度地图API,我们可以看到百度为开发者准备的平台。
在控制台中,创建一个新的应用。
这样子我们就创建好一个新的应用了,下面的IP地址可以填0.0.0.0
这里可以看到我们的AK即Access Key,这串字符很重要,是我们可以成功访问的关键。接着我们依照其API文档,来尝试获取图片。
从开发者频道中找到开发文档,查看其API使用。
找到静态图相关文档。
这里有相应的参数列表以及API使用实例
https://pic.qr2c.cn/staticimage/v2?ak='您的AK'&width=280&height=140&zoom=11&scale=2
利用示例代码,我们需要替换自己的AK密钥。
我们添加上地图中心的经纬度坐标,之后在浏览器的网页栏输入这个Http请求
输入我们的经纬度信息,就可以获得如下的图片啦,接下来我们尝试着制作一个手机APP,可以根据经纬度获取地图附近地图信息。
后续尝试利用STM32配合GPS模块做个定位器~~
using System.Net.Http;
namespace BaiduMapTest{ public partial class MainPage : ContentPage { private const string API_KEY = "********"; private const string BASE_URL = "https://pic.qr2c.cn/staticimage/v2";
int count = 0;
public MainPage(){ InitializeComponent();
// 设置 Slider 值变化事件 ZoomSlider.ValueChanged += OnZoomSliderValueChanged;
// 设置更新地图按钮点击事件 UpdateMapBtn.Clicked += OnUpdateMapClicked; }
private void OnZoomSliderValueChanged(object sender, ValueChangedEventArgs e){ int zoomLevel = (int)e.NewValue; ZoomLabel.Text = $"当前缩放级别: {zoomLevel}"; }
private async void OnUpdateMapClicked(object sender, EventArgs e){ if (double.TryParse(LongitudeEntry.Text, out double longitude) && double.TryParse(LatitudeEntry.Text, out double latitude)) { int zoom = (int)ZoomSlider.Value; string url = $"{BASE_URL}?ak={API_KEY}&width=400&height=400&zoom={zoom}¢er={longitude},{latitude}©right=1&scale=2";
try { using (var httpClient = new HttpClient()) { byte[] imageBytes = await httpClient.GetByteArrayAsync(url); MapImage.Source = ImageSource.FromStream(() => new MemoryStream(imageBytes)); } } catch (Exception ex) { await DisplayAlert("错误", $"获取地图图像时出错: {ex.Message}", "确定"); } } else { await DisplayAlert("输入错误", "请输入有效的经度和纬度", "确定"); } } }}
.NET MAUI 代码片段