matlab 如何调用百度地图API获得经纬度以及地图

偶然发现这篇文章只开了个头没写完骗了几百阅读量,实在不好意思就决定好好写完。本文主要介绍如何用matlab调用百度地图API接口实现静态图的获取,我们可以通过这个接口显示指定区域的地图,并且最多可以标注50个点。


  • 首先进入百度地图的官网地址.
  • 登陆之后进入控制台
    matlab 如何调用百度地图API获得经纬度以及地图_第1张图片
  • 接着进入我的应用,创建应用
    matlab 如何调用百度地图API获得经纬度以及地图_第2张图片
  • 创建界面如下图,记得将IP设置成那样,其他的都可以使用默认
    matlab 如何调用百度地图API获得经纬度以及地图_第3张图片接着我们来看一下具体使用方法

注意事项:

  • URL长度:2048 ——请求长度限制
  • 点标记的数量:50个 ——最多标50个点
  • 调用次数:同一个开发者帐号下的HTTP/HTTPS请求,配额、并发共享。——重度使用请氪金

我们先举一个简单的例子,全部使用默认参数看看返回的是什么。

API = 'http://api.map.baidu.com/staticimage/v2';
ak = '你的AK';
[a b]= webread(API,'ak',ak)
imshow(a,b)

这里需要解释一下,API就是服务器的地址,ak相当于一个密码,给你自己账号使用的。webread就是一个请求函数,具体的使用方法可以参考webread。然后返回的参数有两个,实际上是用两个参数来表示一张图片。如果我们需要更多的参数,只需要无脑的在后面添加参数名和参数值就行。

然后imshow(X,map) 在这里是显示带有颜色图 map 的索引图像 X。颜色图矩阵可以具有任意行数,但它必须恰好包含 3 列。每行被解释为一种颜色,其中第一个元素指定红色的强度,第二个元素指定绿色的强度,第二个元素指定蓝色的强度。颜色强度可以在 [0, 1] 区间中指定。

运行之后显示的图像为:
matlab 如何调用百度地图API获得经纬度以及地图_第4张图片
这个是默认的参数显示图像,然后我们以此为基础就可以显示自己想要的地图了。

参数名 必选 默认值 描述

matlab 如何调用百度地图API获得经纬度以及地图_第5张图片


举个例子,如果我们现在需要广州市大学城的图片,大小为512*512,高分辨率,缩放等级为15,版权为文字描述,将中山大学东校区标注起来,那么所需要的的代码如下:

API = 'http://api.map.baidu.com/staticimage/v2';
ak = '你的AK';
width = 512;
height = 512;
center = '广州番禺大学城';
zoom = 15;
copyright = 1;
dpiType = 'ph';
markers = '中山大学东校区';
[a b c]= webread(API,'ak',ak,'width',width,'height',height,'center',...
    center,'zoom',zoom,'copyType',copyright,'dpiType',dpiType,...
    'markers',markers);
imshow(a,b)

显示的图片如下:
matlab 如何调用百度地图API获得经纬度以及地图_第6张图片


其实这个还是很简单的,如果需要更多的标注只需要用 | 分隔就好,一些高级功能比如说自定义图标什么的可以参考官方的说明,都不难。不过需要注意的是,虽然百度地图是支持地址输入的,但是经常还是会有识别不了的情况,所以建议还是用经纬度来表示比较方便。


地址转经纬度
我简单介绍一下经纬度转换,get请求的方式和上面webread是一样的,只是需要修改一下参数,下面我举一个例子来说明:

API = 'http://api.map.baidu.com/geocoding/v3';
address = '北京市海淀区上地十街10号';
ak ='你的AK';
output='json';
callback = 'showLocation';
result = webread(API,...
    'address',address,'ak',ak,'output',output,'callback',callback)

返回的结果是一个字符串,如下:

result =
 'showLocation&&showLocation({"status":0,"result":{"location":{"lng":116.3084202915042,"lat":40.05703033345938},"precise":1,"confidence":80,"comprehension":100,"level":"门址"}})'

里面就包含了经纬度和其他信息,具体的参数如下图:
请求参数

matlab 如何调用百度地图API获得经纬度以及地图_第7张图片
返回参数:
matlab 如何调用百度地图API获得经纬度以及地图_第8张图片

更为详细的请看百度地图参考文档


觉得这篇文章对你有启发,可以点赞支持。

你可能感兴趣的:(Matlab,笔记,#,MATLAB工具)