高德地图web 端智能围栏

最近有个项目,需要在web上批量给设备设置智能围栏,设备超出范围报警,查看高德地图webJS API,web端操作案例如,后台判断没有提供源码

<!-- 重点参数:iconStyle -->
<!doctype html>
<html lang="zh-CN">

<head>
    <!-- 原始地址:http://webapi.amap.com/ui/1.0/ui/misc/PositionPicker/examples/positionPicker2.html -->
    <base href="http://webapi.amap.com/ui/1.0/ui/misc/PositionPicker/examples/" />
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
    <title>自定义图标</title>

    <style>
        html,
        body {
            height: 100%;
            margin: 0;
            width: 100%;
            padding: 0;
            overflow: hidden;
            font-size: 13px;
        }

        #pickerBox {
            position: absolute;
            z-index: 9999;
            top: 50px;
            right: 30px;
            width: 300px;
        }

        #pickerInput {
            width: 200px;
            padding: 5px 5px;
        }

        .amap-icon:first {
            display: none;
        }

        .map {
            height: 100%;
            width: 100%;
            float: left;
        }

        #right {
            color: #444;
            background-color: #f8f8f8;
            width: 40%;
         
            height: 20%;
          

            position: fixed;

            bottom: 0;

            right: 0;
        }

        #start,
        #stop,
        #right input {
            margin: 4px;
            margin-left: 15px;
        }

        .title {
            width: 100%;
            background-color: #dadada
        }

        button {
            border: solid 1px;
            margin-left: 15px;
            background-color: #dadafa;
        }

        .c {
            font-weight: 600;
            padding-left: 15px;
            padding-top: 4px;
        }

        #lnglat,
        #address,
        #radius,
        #nearestRoad,
        #nearestPOI,
        .title {
            padding-left: 15px;
        }
    </style>
</head>

<body>
    <div id="container" class="map" tabindex="0"></div>
    <div id="pickerBox">
       <label style="color:black;">输入关键字:</label> <input id="pickerInput" placeholder="输入关键字选取地点">
        <div id="poiInfo"></div>
    </div>
    <div id='right'>

        <div>
            <div class='title'>选址结果</div>
            <div class='c'>经纬度:</div>
            <div id='lnglat'></div>
            <div class='c'>地址:</div>
            <div id='address'></div>
            <div class='c'>半径:</div>
            <div id='radius'></div>
        </div>
    </div>
    <script type="text/javascript" src='http://webapi.amap.com/maps?v=1.4.5&key=88fcea1f3a8906968444a696ea3b0427&plugin=AMap.ToolBar,AMap.PolyEditor,AMap.CircleEditor,AMap.PoiPicker'></script>
    <script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>


    <!-- UI组件库 1.0 -->
    <script src="http://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
    <script type="text/javascript">
        var circle;
        var editorTool, map;
        var positionPicker;
        var editor = {};
        var radius;
        AMapUI.loadUI(['misc/PoiPicker'], function (PoiPicker) {

            var poiPicker = new PoiPicker({
                input: 'pickerInput'
            });
            //初始化poiPicker
            poiPickerReady(poiPicker);
        });
        AMapUI.loadUI(['misc/PositionPicker'], function (PositionPicker) {
            map = new AMap.Map('container', {
                zoom: 14,
                scrollWheel: true
            })
            positionPicker = new PositionPicker({
                mode: 'dragMarker',
                map: map
                // map: map,
                // iconStyle: { //自定义外观
                //     url: 'file:///C:/Users/anakin/Desktop/circle.png',
                //     ancher: [24, 40],
                //     size: [48, 48]
                // }
            });

            positionPicker.on('success', function (positionResult) {
                if (circle != null) {
                    radius = circle.Ch.radius;
                    editor._circleEditor.close();
                    circle.hide();
                }
                else {
                    radius = 1000;
                }

                document.getElementById('lnglat').innerHTML = positionResult.position;
                document.getElementById('address').innerHTML = positionResult.address;
                document.getElementById('radius').innerHTML =radius+"";
               
                var arraycenter = positionResult.position.toString().split(",")
                //在地图上绘制折线

                
                editor._circle = (function () {
                    circle = new AMap.Circle({
                        center: arraycenter,// 圆心位置
                        radius: radius, //半径
                        strokeColor: "#F33", //线颜色
                        strokeOpacity: 1, //线透明度
                        strokeWeight: 3, //线粗细度
                        fillColor: "#ee2200", //填充颜色
                        fillOpacity: 0.35//填充透明度
                    });
                    circle.setMap(map);
                    return circle;
                })();
                editor._circleEditor = new AMap.CircleEditor(map, editor._circle);

                editor.startEditCircle = function () {
                    editor._circleEditor.open();
                }
                editor.closeEditCircle = function () {
                    editor._circleEditor.close();
                }
                editor._circleEditor.open();

                editor._circleEditor.on('move', function (type, target, lnglat) {
                    console.log(lnglat);
                });
                // $(".amap-icon").hide();

                $(".amap-icon").each(function () {
                    alert("dd")
                });
            });
            positionPicker.on('fail', function (positionResult) {



            });





            var onModeChange = function (e) {
                alert(e.target.value);
                positionPicker.setMode(e.target.value)
            }
            positionPicker.setMode("dragMap")


            positionPicker.start();

            map.addControl(new AMap.ToolBar({
                liteStyle: true
            }))


        });

        function poiPickerReady(poiPicker) {

            window.poiPicker = poiPicker;

            var marker = new AMap.Marker();

            var infoWindow = new AMap.InfoWindow({
                offset: new AMap.Pixel(0, -20)
            });

            //选取了某个POI
            poiPicker.on('poiPicked', function (poiResult) {

                var source = poiResult.source,
                    poi = poiResult.item,
                    info = {
                        source: source,
                        id: poi.id,
                        name: poi.name,
                        location: poi.location.toString(),
                        address: poi.address
                    };
               // alert(poi.location.toString());
                map.panTo(poi.location);


            });

            poiPicker.onCityReady(function () {
                poiPicker.suggest('');
            });
        }


    </script>
</body>

</html>

 

  

posted @ 2018-03-30 13:48  anakinf  阅读(2268)  评论(0编辑  收藏  举报