百度地图 api bug 解决.......
百度地图 遇到了一个默明奇妙的bug..... 调用后中心点 不再 point(标注的点上...)这是需要执行一次(仅一次) 当 地图 加载完后 执行(这个方法你每次改地图 都会执行...所以让他执行一次......因为这个问题只会在 首次出现...)
//百度地图的 js ....
var userLocation = {la: 0, lg: 0}; //定义一个 变量.标志 方法只能执行一次...在执行完 百度 tilesloaded 后 将此变量设为 false...
var flag = true; //只能执行一次的方法.....
function initBaiduMap() {
if (userLocation.la === 0 || userLocation.lg === 0) {
//给保定的位置
userLocation.la = 38.87;
userLocation.lg = 115.47;
}
// 百度地图API功能
var map = new BMap.Map("allmap");
var point = new BMap.Point(userLocation.lg, userLocation.la);
map.centerAndZoom(point, 18);
var local = new BMap.LocalSearch(map, {
renderOptions: {map: map}
});
map.enableScrollWheelZoom(true);
map.addControl(new BMap.MapTypeControl({
mapTypes: [
BMAP_NORMAL_MAP,
BMAP_HYBRID_MAP
]
}));
//添加工具栏
var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
var top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件
var top_right_navigation = new BMap.NavigationControl({
anchor: BMAP_ANCHOR_TOP_RIGHT,
type: BMAP_NAVIGATION_CONTROL_SMALL
});
map.addControl(top_right_navigation); map.addEventListener('tilesloaded', function () {
//加载完成是有一个bug...该bug会导致..点偏移一次....这个方法只应该执行一次----
//默认检索...高阳县
// local.search("河北省保定市高阳县");
if (flag) {
map.clearOverlays();
var marker = new BMap.Marker(point);
map.addOverlay(marker);
map.centerAndZoom(marker, 1);
map.panTo(point, {noAnimation: true});
map.setCenter(point);
flag = false;
}
});
//绑定搜索事件....
$("#searchLocation").click(function () {
//清空所有标注....
map.clearOverlays();
local.search($("#detailLocation").val().trim());
});
//定义一个 marker 对象...
var mapLocation = {lg: 0, la: 0, label: {}};
map.addEventListener("click", function (e) {
//alert(e.point.lng + ", " + e.point.lat);
//清空所有标注....
map.clearOverlays();
//新建一个标注...
var marker = new BMap.Marker(e.point);
map.addOverlay(marker);
}); //绑定取消..
$('#cancelSelectMap').on('tap', function () {
$("#baiduMapWrapper").hide();
$("#form").show();
}); $("#confirmMapLocation").click(function () {
var markers = map.getOverlays();
for (var i = 0; i < markers.length; i++) {
console.log(typeof markers);
}
if (markers !== undefined) {
if (markers.length > 1) {
alert('标记大于一个...' + markers.length);
} else {
var point = markers[0].point;
mapLocation.lg = point.lng;
mapLocation.la = point.lat;
try {
mapLocation.infoWindow = markers[0].yb['content'];
var html = markers[0].yb['content'];
var marker = markers[0];
var address = $(html).find('tr:first').find('td:eq(1)').text();
vm.shop.address = address.trim();
vm.shop.map_location = mapLocation.lg + "," + mapLocation.la;
//$("#map_location").val(mapLocation.lg + ',' + mapLocation.la);
} catch (e) {
console.log(e);
vm.shop.map_location = mapLocation.lg + "," + mapLocation.la;
}
$("#baiduMapWrapper").hide(200);
$("#form").show(200);
}
}
});
}
百度地图 api bug 解决.......的更多相关文章
- 百度地图api的覆盖物样式与bootstrap样式冲突解决办法
使用百度地图api 和 bootstrap ,发现标注样式出现了问题 label左侧 宽度变得非常窄 正常情况下应该是下面这样的: 原因是boostrap样式和百度地图样式冲突了. 解决办法: .ba ...
- 百度地图API 与 jquery 同时使用时报 TypeError $(...) is null错误 失效的原因及解决办法
在引用百度地图API后,发现jquery 根据id 找不到 form.但是对于别的控件没有问题. 在排除了 html加载的问题后. 上网查找 发现以下解决办法: 原因应该是有冲突的插件. 解决办法将 ...
- 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:
原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ...
- 百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法
原文:百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法 公司的网站改版要求在一个页面显示百度地图.上面要同时显示很多标注点,标注点当然要有提示信息嘛,提 ...
- 百度地图api在Html中显示,在jsp页面中不显示解决方法
在jsp页面中显示如下 但是在html中正常显示. 原来的代码如下: <script type="text/javascript" src="http://api. ...
- 关于 WebBrowser调用百度地图API 鼠标滚轮缩放地图级别失灵的解决办法
在桌面程序下 百度地图API的鼠标缩放地图功能可能会失灵无效! 这个原因不是API的问题 小弟试了下在WEB上面是没有问题的 于是考虑可能是WebBrowser的获取焦点问题,于是在主窗体 添加了一个 ...
- 百度地图API多个点聚合时,标注添加的标签label地图刷新就丢失的问题解决
当将自定义的Marker(含有Label)通过MarkerClusterer 管理的时候,当地图发生任何移动.缩放 的时候,Marker 的Label 就会自动消失. 这个问题主要是由于百度的点聚合A ...
- 百度地图API开发指南
简介什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用.百度地图API包含了构建地图基本功能的各种接口,提供 ...
- Qt开发北斗定位系统融合百度地图API及Qt程序打包发布
Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...
随机推荐
- 在ACCESS中LIKE的用法
Access里like的通配符用法是这样: “?”表示任何单一字符: “*”表示零个或多个字符: “#”表示任何一个数字 所以应该是: select * from databa ...
- springmvc配置式开发下的视图解析器
多个视图解析器优先级:
- 关于android通过shell修改文件权限的学习
首先是文件的读写属性(下图): 要通过shel命令l修改文件权限: 1.首先在cmd里输入adb shell 命令进入编辑模式 2.用cd命令进入到想要修改的文件目录,不知道的时候可以用ls 命令列表 ...
- html标签的显示模式(块级标签,行内标签,行内块标签)(转)
html标签的显示模式(块级标签,行内标签,行内块标签) 今天讲课的时候,讲到了html中的标签的显示模式,大致分为块级标签和行内标签.那么初学者在刚使用标签的时候会发现有些属性在一些标签上不起作 ...
- Codeforces 1114D Flood Fill (区间DP or 最长公共子序列)
题意:给你n个颜色块,颜色相同并且相邻的颜色块是互相连通的(连通块).你可以改变其中的某个颜色块的颜色,不过每次改变会把它所在的连通块的颜色也改变,问最少需要多少次操作,使得n个颜色块的颜色相同. 例 ...
- winform 对话框控件
ColorDialog 可以调节颜色的控件,如果给一个按钮点击事件 ColorDialog.showdialog();就会弹出这个 返回值是个枚举类 然后定义一个这个类的变量 接收一下它的返回值 Di ...
- Qt测试计算时间
博客转载自:https://blog.csdn.net/lg1259156776/article/details/52325508 一.标准C和C++都可用 1. 获取时间用time_t time( ...
- Luogu 1514 [NOIP2010] 引水入城
我就是过来开心一下……这道题从开坑以来已经堆积了大半年了……今天才发现广搜一直写挂…… 丢个线段覆盖的模板,设$f_{i}$表示覆盖区间[1, i]的最小代价,$g_{i, j}$表示覆盖区间[i, ...
- WOJ 18 动态无向图
一开始我是不会写的,后来点开了题解: 无话可说……那就写吧……然而第一发跑成暴力分,后来加了一个优化:就是在询问里面提到过的边都不用再加了. 然后……然后就过了呀…… 其实还有面向数据的编程的骚操作… ...
- How a web page loads
The major web browsers load web pages in basically the same way. This process is known as parsing an ...