暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Matlab-由照片确定地理位置

不糊涂录 2021-09-26
788

今天,猛然记起摄影测量课上用许多照片构建3D模型,每张照片都有经纬度信息!于是,我想能不能用百度地图API将照片的位置画在地图上?说干就干,我做了一款GUI,可以读取照片,显示照片所在的地理位置、附近的全景图。

GUI界面如下:


下面我们看看如何实现的吧!

一.获取密钥(AK)

二.看服务文档

一定得结合服务文档写代码!

三.撸代码

核心代码1:

照片里的经度、纬度都1行3列,分别为度分秒。

    % 读取照片地理信息
    info = imfinfo('1.jpg)';

    核心代码2:

    这是最核心的代码!

    webread的使用就是填入API、参数值,关于输出值,服务文档会有介绍。

       % 提交申请,返回所需数据
       % 地理位置静态图、全景图、坐标转换均使用此核心代码
       output= webread(API,'ak',ak,'coords',center,'from',1,'to',5,'ak',ak);


      一定不要忘记坐标转换,要转为百度用的坐标!

        % 调用百度地图API-坐标转换
        function coortran
        global center
        API='http://api.map.baidu.com/geoconv/v1/';
        ak='wHGswrM32w8IWybVFGsv1Ep9LBQa7keB';
        output= webread(API,'ak',ak,'coords',center,'from',1,'to',5,'ak',ak);
        lon=output.result.x;
        lat=output.result.y;
        center=[num2str(lon),',',num2str(lat)];
        end


        其实,这种结合API的程序,就是看服务文档,把请求构建出来,然后使用其服务,希望你借助这篇文章学习使用API的方法,如果你有兴趣,你可以试着调用其他的API,比如英语翻译等。


        完整代码获取方式:后台回复“百度地图”即可。使用时请注意:所选照片必须有经纬度信息,拍摄时要打开相机设置里的“地理位置”。


        如果你喜欢这篇文章,就帮我转发、分享吧,谢谢~~

        文章转载自不糊涂录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论