博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
百度地图的全景地图实现的过程
阅读量:4988 次
发布时间:2019-06-12

本文共 1417 字,大约阅读时间需要 4 分钟。

最近要弄百度,实现web上地图拖动标注,停下来的时候,搜索地图位置上的全景图。用户点击全景图后,进入全景模式。

这个需求看上去很简单。但是也费了我大半天的功夫。

主要问题是

1. 百度地图没有完整的例子

2. 百度地图的全景图在PC web 和移动 web 实现方式不一样

3. 百度地图的API 文档,个人感觉写得一般。 

 

OK,不总结那么多了。声明下,我这个是用v2.0 版本的JS API。

首先,直接拿官方的例子

http://developer.baidu.com/map/jsdemo.htm#j1_0

 

这个例子很简单,具体代码就不说了。但是,这里有一个坑,就是PC上出现 下面红框所示的标注和Info窗口。 放到移动手机上就没了。

本以为是代码写错,但是最后了解到,PC上用的是Flash技术。 移动手机用的是JS技术。估计移动手机的js技术有Bug吧。

没办法了,只能自己画Marker,添加Label了。但是怎么根据经纬读,获取这个位置上的全景信息呢?

原来有这个对象

var panoramaService = new BMap.PanoramaService(); 

panoramaService.getPanoramaByLocation(new BMap.Point(lng, lat), function(data){

var panoramaInfo="";
if (data == null) {
$("#myDesc").html("");
return;
}
myData = data;
panoramaInfo +='全景id为:'+data.id+'\n';
panoramaInfo +='坐标为:'+data.position.lng+':'+data.position.lat+'\n';
//alert(panoramaInfo);
getImg(data);
});

另外一个问题,又如何获取全景静态图片呢?

查了半天,原来有 "全景静态图API" (http://lbsyun.baidu.com/index.php?title=viewstatic)

于是写了一个函数,获取图片,这个函数太简单了

function getImg(data)

{
$("#myImg").attr('src',"http://api.map.baidu.com/panorama/v2?ak=你的key&width=120&height=100&location="+data.position.lng+","+data.position.lat+"&fov=180");
$("#myDesc").html(data.description);
}

但是获取图片,如何进入全景图呢,原来可以这样子

var panorama = map.getPanorama();//获取实例对象

panorama.setId(myData.id);  //全景ID
panorama.show(); //显示全景

 

基本思路搞定了,剩下的事情就好办了。直接上代码,童鞋自己改改用吧。

	
显示全景控件

在地图上拖动标注,点击图片查看全景图

  

 

转载于:https://www.cnblogs.com/liguoyi/p/5929724.html

你可能感兴趣的文章
log4j 将web请求 日志输入到数据库
查看>>
125-初识布尔运算(比较运算)
查看>>
前端学习笔记之CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解
查看>>
ionic所支持的所有事件events
查看>>
Java学习之——泛型
查看>>
HTTP POST GET 本质区别详解
查看>>
css+div
查看>>
使用Java API的5个技巧
查看>>
Java生鲜电商平台-系统架构与技术选型
查看>>
nginx+keepalived简单双机主从热备
查看>>
vue mint-ui 三级地址联动
查看>>
前端异常和性能监控(转)
查看>>
多线程程序的测试和调试
查看>>
Python练习_购物车_day6
查看>>
Codeforces Round #446 (Div. 2)
查看>>
android学习笔记41——图形图像处理1
查看>>
realloc函数实现数组动态增长
查看>>
设计模式之模板方法模式和策略模式
查看>>
遗弃(我看《功夫熊猫2》)
查看>>
iOS GCD基础篇 - 同步、异步,并发、并行的理解
查看>>