百度地图 api bug 解决.......

摘要:
百度地图遇到了一个神秘的错误。调用后,中心点不再是点(在标记的点上…),这需要在地图加载后执行一次(只执行一次)(每次更改地图时都会执行此方法…所以让它执行一次…因为此问题只会第一次出现…)//百度地图的js。。。。VaruserLocation={la:0,lg:0}//定义变量。flag方法只能执行一次在执行Baidu tilesloaded后更改

百度地图 遇到了一个默明奇妙的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 解决.......》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux命令(六) 查看文件 cat tac more less tail小程序使用weapp-qrcode二维码插件,宽高自适应解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

百度地图API自定义地图

http://api.map.baidu.com/lbsapi/creatmap/index.html http://developer.baidu.com/map/index.php?title=webapi <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/...

【转】【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件

【转】【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件 目录 概述 功能 如何使用 参考帮助 概述 源代码主要包含三个项目,BMap.NET、BMap.NET.WindowsForm以及BMap.NET.WinformDemo。 BMap.NET 对百度地图Web Service API 的一...

BMap:WEB 服务API

ylbtech-Map-Baidu:WEB 服务API 百度地图Web服务API为开发者提供http/https接口,即开发者通过http/https形式发起检索请求,获取返回json或xml格式的检索数据。用户可以基于此开发JavaScript、C#、C++、Java等语言的地图应用。 1.概述返回顶部 1-0、概述 http://lbsyun.baid...

百度地图JavaScript开发入门先知

最近项目紧急开发了一些百度地图的功能,觉得百度地图实数强大!于是今天不忙总结一下,看到不错的文章先转载。 文章出处:https://www.opengps.cn/Blog/View.aspx?id=14 百度地图JavaScript开发第一步,得会看资料。很多新手,是因为连基本的页面怎么打开都不知道,重度依赖搜索引擎去搜出来百度地图开发官方站点,从而记不住...

学习HTML5获取地理位置定位信息--(通过百度地图API,google地图API的两种方式)

前言:它是依赖于 百度地图API或google地图API 的功能,并且要允许定位; 思想:h5方式仅能获取到经纬度,通过得到的经纬度然后ajax调用百度地图和谷歌地图等提供的这方面的接口,才获取到的具体位置信息。 HTML5提供了地理位置定位功能(Geolocation API),能确定用户位置,我们可以借助HTML5的该特性开发基于地理位置信息的应用。本...

如何在网中使用百度地图API自定义个性化地图

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <...