腾讯地图-通过定位显示当前位置地图

腾讯地图-通过定位显示当前位置地图<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><titl

大家好,欢迎来到IT知识分享网。

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
    <title>腾讯地图-通过定位显示当前位置地图</title>
    <meta name=”viewport” content=”width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no”>
</head>

<body>
    <h3 style=”color: red;text-align: left;”>在微信中必须是https才能定位,不然可能会定位失败!!!</h3>
    <div class=”map” style=”float: left;”>
        <script src=”https://map.qq.com/api/gljs?v=2.exp&key=A4LBZ-67BWD-3GS4B-H7HXV-CFMIV-LIBUC”></script>
        <div id=”container” style=”height: 400px;width: 400px;margin: auto;”></div>
    </div>
    <div class=”location” style=”float: left;margin-left: 20px;”>
        <script type=”text/javascript”
            src=”https://apis.map.qq.com/tools/geolocation/min?key=A4LBZ-67BWD-3GS4B-H7HXV-CFMIV-LIBUC&referer=myapp”></script>
        <div id=”pos-area”>
            <p id=”demo”>点击下面的按钮,获得对应信息:<br /></p>
        </div>
        <button onclick=”watchPosition()”>开始监听位置</button>
        <button onclick=”clearWatch()”>停止监听位置</button>
    </div>

    <script type=”text/JavaScript”>
        var geolocation = new qq.maps.Geolocation();  
        var options = {timeout: 9000,failTipFlag:true};
        var positionNum = 0;
        var oldPosition={}
        getCurLocation();

        //定位方法
        function getCurLocation() {
            geolocation.getLocation(showPosition, showErr, options);
        }        
        //定位成功执行方法
        function showPosition(position) {
            positionNum ++;
            if(oldPosition.lat!=position.lat||oldPosition.lng!=position.lng){    
                document.getElementById(“demo”).innerHTML += “序号:” + positionNum+”位置发送变更<br />”;        
                //document.getElementById(“demo”).appendChild(document.createElement(‘pre’)).innerHTML = JSON.stringify(position, null, 4);
                oldPosition=position;
                makeMap(position.lat,position.lng)
            }
        }
        //定位失败执行方法
        function showErr() {
            positionNum ++;
            document.getElementById(“demo”).innerHTML += “序号:” + positionNum;
            document.getElementById(“demo”).appendChild(document.createElement(‘p’)).innerHTML = “定位失败!”;
            getCurLocation();
        }
        //位置监听方法
        function watchPosition() {
            document.getElementById(“demo”).innerHTML += “开始监听位置!<br /><br />”;
            geolocation.watchPosition(showPosition);
        }
        //停止监听方法
        function clearWatch() {
            geolocation.clearWatch();
            document.getElementById(“demo”).innerHTML += “停止监听位置!<br /><br />”;
        }
    </script>

    <script type=”text/javascript”>
        var map, marker;
        function makeMap(lat, lng) {
            // 初始化地图
            //MapOptions文档地址:https://lbs.qq.com/webApi/javascriptGL/glDoc/docIndexMap#2
            var center = new TMap.LatLng(lat, lng);
            if (!map) {
                map = new TMap.Map(‘container’, {
                    zoom: 15, // 设置地图缩放
                    center: center, // 设置地图中心点坐标,
                    draggable: false,//是否支持拖拽移动地图
                    scrollable: false,//是否支持鼠标滚轮缩放地图
                    showControl: false,//是否显示地图上的控件
                    doubleClickZoom: false,//是否支持双击缩放地图
                });
                //创建圆形覆盖物
                var circle = new TMap.MultiCircle({
                    map,
                    styles: { // 设置圆形样式
                        ‘circle’: new TMap.CircleStyle({
                            ‘color’: ‘rgba(41,91,255,0.16)’,
                            ‘showBorder’: true,
                            ‘borderColor’: ‘rgba(41,91,255,1)’,
                            ‘borderWidth’: 2,
                        }),
                    },
                    geometries: [{
                        styleId: ‘circle’,
                        center: center, //圆形中心点坐标
                        radius: 500,    //半径(单位:米)
                    }],
                });
            }

            // MultiMarker文档地址:https://lbs.qq.com/webApi/javascriptGL/glDoc/glDocMarker
            if (marker) {
                updateMarker(center)
            }
            else {
                marker = new TMap.MultiMarker({
                    map: map,
                    styles: {
                        // 点标记样式
                        marker: new TMap.MarkerStyle({
                            width: 20, // 样式宽
                            height: 30, // 样式高
                            anchor: { x: 10, y: 30 }, // 描点位置
                        }),
                    },
                    geometries: [
                        // 点标记数据数组
                        {
                            // 标记位置(纬度,经度,高度)
                            position: center,
                            id: ‘marker’,
                        },
                    ],
                });
            }
        }
        //更新marker事件
        function updateMarker(center) {
            if (marker) {
                marker.updateGeometries([
                    {
                        id: “marker”,
                        position: center,
                    }
                ])
            }
        }
    </script>
</body>

</html>

 

效果图

腾讯地图-通过定位显示当前位置地图

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27981.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信