zoukankan      html  css  js  c++  java
  • 使用百度地图做地理追踪

    js部分

    //百度地图
        bMapFun : function () {
            var map = new BMap.Map("map");
            var point = new BMap.Point(116.319764, 40.070091),
                reportP = new BMap.Point(116.311481, 40.072409),
                n = 1, polyline, recentP = false,
                dataPoints = [
                        reportP,//坐标1
                      new BMap.Point(116.313098, 40.072603),//坐标2
                      new BMap.Point(116.315074, 40.069511),//坐标3
                      new BMap.Point(116.317949, 40.06998),//坐标4 以此类推
                      new BMap.Point(116.325854, 40.073017),//坐标4 以此类推
                      new BMap.Point(116.311481, 40.072409)
                ];
    
            map.centerAndZoom(point, 16);
            map.addControl(new BMap.NavigationControl());    
            map.addControl(new BMap.ScaleControl());    
            map.addControl(new BMap.OverviewMapControl()); 
            // var marker = new BMap.Marker(point);  // 创建标注
            // map.addOverlay(marker);               // 将标注添加到地图中
    
    
            setInterval(drawPolyLine, 1000)
    
            function drawPolyLine()  {
                if (!!polyline)  {
                    map.removeOverlay(polyline)
                }
                if (recentP)  {
                    map.removeOverlay(recentP)
                }
    
                n = n % dataPoints.length
                console.info(n)
                if (n > 1) {
                    var points = []
                    for (var i = 0;i < n; i ++ ) {
                        points.push(dataPoints[i])
                    }
    
                    polyline = new BMap.Polyline(points, {strokeColor:"#f00", strokeWeight:2, strokeOpacity:0.5});
                    map.addOverlay(polyline);
    
                    
                    recentP = addPoint({
                        point: points[n-1],
                        title: '现在所在位置',
                        dateTime: '2014年1月12日 14:'+n+ '5',
                        before: '30秒前'
                    })
    
                    n++
                } else {
                    n = 2
                }
            }
            // var polyline = new BMap.Polyline([
            //   reportP,//坐标1
            //   new BMap.Point(116.313098, 40.072603),//坐标2
            //   new BMap.Point(116.315074, 40.069511),//坐标3
            //   new BMap.Point(116.317949, 40.06998),//坐标4 以此类推
            //   new BMap.Point(116.325854, 40.073017),//坐标4 以此类推
            //   recentP,//坐标4 以此类推
            // ], {strokeColor:"#f00", strokeWeight:2, strokeOpacity:0.5});
            // map.addOverlay(polyline);
            
            // // map.addEventListener('click', function(e) {
            // //     console.info(e.point)
            // // })
    
            addPoint({
                point: reportP,
                title: '报警地点',
                dateTime: '2014年1月12日 14:15',
                before: '10分钟前',
                animation: true
            })
            // addPoint({
            //     point: recentP,
            //     title: '现在所在位置',
            //     dateTime: '2014年1月12日 14:45',
            //     before: '30秒前'
            // })
    
            function addPoint(data)  {
    
                var point = data.point
                //解析地址
                var gc = new BMap.Geocoder();
                var marker = new BMap.Marker(point);  // 创建标注
                map.addOverlay(marker);               // 将标注添加到地图中
    
                if (!!data.animation)  {
                    marker.setAnimation(BMAP_ANIMATION_BOUNCE)
                }
    
                //解析地址
                gc.getLocation(point, function(rs)
                {
                    var addComp = rs.addressComponents;
    
                    var address = [];
    
                    //直辖市不显示省,因为省和市是一样的
                    if (addComp.province != addComp.city)
                    {
                        addComp.province ? address.push(addComp.province) : "";
                    }
    
                    addComp.city ? address.push(addComp.city) : "";
                    addComp.district ? address.push(addComp.district) : "";
                    addComp.street ? address.push(addComp.street) : "";
                    addComp.streetNumber ? address.push(addComp.streetNumber) : "";
    
                    address = address.join(",");
    
                    var title = "坐标:" + point.lng + ", " + point.lat;
    
                    var content = [];
    
    
                    content.push("<p style='margin:0;'>" + title + "</p>");
                    content.push("<p style='margin:0;'>地点:" + address + "</p>");
                    // content.push("<p style='margin:0;'>开始时间:" + start_time + "</p>");
                    // content.push("<p style='margin:0;'>最后时间:" + end_time + "</p>");
                    content.push("<p style='margin:0;'>时间:" + data.dateTime + '(' + data.before + ')' + "</p>");
    
                    content = content.join(" ");
    
                    //添加标注信息
                    var opts = { 250, enableMessage: false,title:'<p class="map-info">' + data.title + '</p>'};
    
                    var info_window = new BMap.InfoWindow(content, opts);
    
                    marker.infoWindow = info_window;
                    marker.openInfoWindow(info_window)
    
                    marker.addEventListener("click", function()
                    {
                        this.openInfoWindow(info_window);
                    });
                });
    
                return marker;
            }
        }

    css部分

    .map {height: 580px;}
    .map-info {
        color: red;
        margin-top: -5px;
        margin-bottom: 7px;
        font-weight: bold;
        font-size: 1.2em;
    }
  • 相关阅读:
    172. Factorial Trailing Zeroes
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    91. Decode Ways
    LeetCode 328 奇偶链表
    LeetCode 72 编辑距离
    LeetCode 226 翻转二叉树
    LeetCode 79单词搜索
    LeetCode 198 打家劫舍
    LeetCode 504 七进制数
  • 原文地址:https://www.cnblogs.com/javawer/p/4223695.html
Copyright © 2011-2022 走看看