百度算是云产品涉及领域即为广泛的公司了,我之前常常利用百度的智能云做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 代码片段