qq.maps.Circle 类

继承自MVCObject

圆形覆盖物。

构造函数

构造函数
Circle(options:CircleOptions)

方法

方法 返回值 说明
getBounds() LatLngBounds 返回圆形的地理区域范围。
getCenter() LatLng 返回圆形的中心点坐标。
getMap() Map 返回圆形所在的map对象。
getRadius() Number 返回圆形半径。
getVisible() Boolean 获取圆形的可见性。
getZIndex() Number 获取圆形的zIndex值。
setCenter(center:LatLng) none 设置圆心坐标。
setMap(map:Map) none 设置圆形所在的map对象。
setRadius(radius:Number) none 设置圆形半径。
setVisible(visible:Boolean) none 设置圆形覆盖物的可见性。
setZIndex(zIndex:Number) none 设置圆形覆盖物的zIndex。
setOptions(options:CircleOptions) none 设置圆形参数。

事件

事件名 参数 说明
center_changed none 当此圆形中心点更改时会触发此事件。
map_changed none 当此圆形覆盖物所在地图更改时会触发此事件。
radius_changed none 当此圆形半径更改时会触发此事件。
visible_changed none 当此圆形可见性更改时会触发此事件。
zindex_changed none 当此圆形zIndex更改时会触发此事件。
click event:MouseEvent 点击圆形后会触发此事件。
dblclick event:MouseEvent 双击圆形后会触发此事件。
rightclick event:MouseEvent 右键点击圆形后会触发此事件。
mousedown event:MouseEvent 鼠标在圆形内按下触发此事件。
mouseup event:MouseEvent 鼠标在圆形上抬起时触发此事件。
mouseover event:MouseEvent 当鼠标进入圆形区域时会触发此事件。
mouseout event:MouseEvent 鼠标离开圆形时触发此事件。
mousemove event:MouseEvent 鼠标在圆形内移动时触发此事件。

实例

本示例中,介绍如何使用圆形覆盖物的方法

JavaScript
function init() {
    var center = new qq.maps.LatLng(39.982163, 116.306070);
    var center2 = new qq.maps.LatLng(39.98555, 116.3);
    var map = new qq.maps.Map(document.getElementById("container"), {
        center: center,
        zoom: 14
    });
    var circle = new qq.maps.Circle({
        map: map,
        center: center,
        radius: 1000,
        fillColor: "#00f",
        strokeWeight: 5
    });

    //setMap()设置圆形覆盖物所在地图
    var mapM = document.getElementById("mapM");
    qq.maps.event.addDomListener(mapM, "click", function() {
        circle.setVisible(true);
        if (circle.getMap()) {
            circle.setMap(null);
        } else {
            circle.setMap(map);
        }
    });

    //setCursor()设置鼠标经过圆形覆盖物的样式
    var curF = true;
    var cursor = document.getElementById("cursor");
    qq.maps.event.addDomListener(cursor, "click", function() {
        circle.setMap(map);
        circle.setVisible(true);
        if (curF) {
            curF = false;
            circle.setCursor("default");
        } else {
            curF = true;
            circle.setCursor("pointer");
        }
    });

    //setFillColor()设置圆形覆盖物的填充颜色
    var fillCF = true;
    var fillC = document.getElementById("fillC");
    qq.maps.event.addDomListener(fillC, "click", function() {
        circle.setMap(map);
        circle.setVisible(true);
        if (fillCF) {
            fillCF = false;
            circle.setFillColor("#0f0");
        } else {
            fillCF = true;
            circle.setFillColor("#111");
        }
    });

    //setCenter()设置圆形覆盖物圆心
    var centerF = true;
    var centerC = document.getElementById("centerC");
    qq.maps.event.addDomListener(centerC, "click", function() {
        circle.setMap(map);
        circle.setVisible(true);
        if (centerF) {
            centerF = false;
            circle.setCenter(center2);
        } else {
            centerF = true;
            circle.setCenter(center);
        }
    });

    //setRadius()设置圆形覆盖物的半径
    var pathF = true;
    var path = document.getElementById("path");
    qq.maps.event.addDomListener(path, "click", function() {
        circle.setMap(map);
        circle.setVisible(true);
        if (pathF) {
            pathF = false;
            circle.setRadius(500);
        } else {
            pathF = true;
            circle.setRadius(1000);
        }
    });

    //setStrokeColor()设置圆形覆盖物边线颜色
    var strokeCF = true;
    var strokeC = document.getElementById("strokeC");
    qq.maps.event.addDomListener(strokeC, "click", function() {
        circle.setMap(map);
        circle.setVisible(true);
        if (strokeCF) {
            strokeCF = false;
            circle.setStrokeColor("#1c29d8");
        } else {
            strokeCF = true;
            circle.setStrokeColor("#000");
        }
    });

    //setStrokeDashStyle()设置圆形覆盖物的边线样式
    var dashF = true;
    var dash = document.getElementById("dash");
    qq.maps.event.addDomListener(dash, "click", function() {
        circle.setMap(map);
        circle.setVisible(true);
        if (dashF) {
            dashF = false;
            circle.setStrokeDashStyle("dash");
        } else {
            dashF = true;
            circle.setStrokeDashStyle("solid");
        }
    });

    //setStrokeWeight()设置圆形覆盖物的边线宽度
    var strokeWeightF = true;
    var strokeWeight = document.getElementById("strokeWeight");
    qq.maps.event.addDomListener(strokeWeight, "click", function() {
        circle.setMap(map);
        circle.setVisible(true);
        if (strokeWeightF) {
            strokeWeightF = false;
            circle.setStrokeWeight(10);
        } else {
            strokeWeightF = true;
            circle.setStrokeWeight(5);
        }
    });

    //setVisible()设置圆形覆盖物的可见性
    var visibleTF = true;
    var visibleT = document.getElementById("visibleT");
    qq.maps.event.addDomListener(visibleT, "click", function() {
        circle.setMap(map);
        if (visibleTF) {
            visibleTF = false;
            circle.setVisible(false);
        } else {
            visibleTF = true;
            circle.setVisible(true);
        }
    });
}
window.onload = init;
JavaScript+HTML
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>向地图上添加一个圆</title>
    <style type="text/css">
        * {
            margin: 0px;
            padding: 0px;
        }
        body,
        button,
        input,
        select,
        textarea {
            font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
        }
        #info {
            width: 603px;
            padding-top: 3px;
            overflow: hidden;
        }
        .btn {
            width: 190px;
        }
    </style>
    <script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
    <script>
        function init() {
            var center = new qq.maps.LatLng(39.982163, 116.306070);
            var center2 = new qq.maps.LatLng(39.98555, 116.3);
            var map = new qq.maps.Map(document.getElementById("container"), {
                center: center,
                zoom: 14
            });
            var circle = new qq.maps.Circle({
                map: map,
                center: center,
                radius: 1000,
                fillColor: "#00f",
                strokeWeight: 5
            });

            //setMap()设置圆形覆盖物所在地图
            var mapM = document.getElementById("mapM");
            qq.maps.event.addDomListener(mapM, "click", function() {
                circle.setVisible(true);
                if (circle.getMap()) {
                    circle.setMap(null);
                } else {
                    circle.setMap(map);
                }
            });

            //setCursor()设置鼠标经过圆形覆盖物的样式
            var curF = true;
            var cursor = document.getElementById("cursor");
            qq.maps.event.addDomListener(cursor, "click", function() {
                circle.setMap(map);
                circle.setVisible(true);
                if (curF) {
                    curF = false;
                    circle.setCursor("default");
                } else {
                    curF = true;
                    circle.setCursor("pointer");
                }
            });

            //setFillColor()设置圆形覆盖物的填充颜色
            var fillCF = true;
            var fillC = document.getElementById("fillC");
            qq.maps.event.addDomListener(fillC, "click", function() {
                circle.setMap(map);
                circle.setVisible(true);
                if (fillCF) {
                    fillCF = false;
                    circle.setFillColor("#0f0");
                } else {
                    fillCF = true;
                    circle.setFillColor("#111");
                }
            });

            //setCenter()设置圆形覆盖物圆心
            var centerF = true;
            var centerC = document.getElementById("centerC");
            qq.maps.event.addDomListener(centerC, "click", function() {
                circle.setMap(map);
                circle.setVisible(true);
                if (centerF) {
                    centerF = false;
                    circle.setCenter(center2);
                } else {
                    centerF = true;
                    circle.setCenter(center);
                }
            });

            //setRadius()设置圆形覆盖物的半径
            var pathF = true;
            var path = document.getElementById("path");
            qq.maps.event.addDomListener(path, "click", function() {
                circle.setMap(map);
                circle.setVisible(true);
                if (pathF) {
                    pathF = false;
                    circle.setRadius(500);
                } else {
                    pathF = true;
                    circle.setRadius(1000);
                }
            });

            //setStrokeColor()设置圆形覆盖物边线颜色
            var strokeCF = true;
            var strokeC = document.getElementById("strokeC");
            qq.maps.event.addDomListener(strokeC, "click", function() {
                circle.setMap(map);
                circle.setVisible(true);
                if (strokeCF) {
                    strokeCF = false;
                    circle.setStrokeColor("#1c29d8");
                } else {
                    strokeCF = true;
                    circle.setStrokeColor("#000");
                }
            });

            //setStrokeDashStyle()设置圆形覆盖物的边线样式
            var dashF = true;
            var dash = document.getElementById("dash");
            qq.maps.event.addDomListener(dash, "click", function() {
                circle.setMap(map);
                circle.setVisible(true);
                if (dashF) {
                    dashF = false;
                    circle.setStrokeDashStyle("dash");
                } else {
                    dashF = true;
                    circle.setStrokeDashStyle("solid");
                }
            });

            //setStrokeWeight()设置圆形覆盖物的边线宽度
            var strokeWeightF = true;
            var strokeWeight = document.getElementById("strokeWeight");
            qq.maps.event.addDomListener(strokeWeight, "click", function() {
                circle.setMap(map);
                circle.setVisible(true);
                if (strokeWeightF) {
                    strokeWeightF = false;
                    circle.setStrokeWeight(10);
                } else {
                    strokeWeightF = true;
                    circle.setStrokeWeight(5);
                }
            });

            //setVisible()设置圆形覆盖物的可见性
            var visibleTF = true;
            var visibleT = document.getElementById("visibleT");
            qq.maps.event.addDomListener(visibleT, "click", function() {
                circle.setMap(map);
                if (visibleTF) {
                    visibleTF = false;
                    circle.setVisible(false);
                } else {
                    visibleTF = true;
                    circle.setVisible(true);
                }
            });
        }
        window.onload = init;
    </script>
</head>

<body onload="init()">
    <div style="width:603px;height:300px" id="container"></div>
    <div id="info">
        <button id="mapM" class="btn">setMap</button>
        <button id="cursor" class="btn">setCursor</button>
        <button id="centerC" class="btn">setCenter</button>
        <button id="fillC" class="btn">setFillColor</button>
        <button id="path" class="btn">setRadius</button>
        <button id="strokeC" class="btn">setStrokeColor</button>
        <button id="dash" class="btn">setStrokeDashStyle</button>
        <button id="strokeWeight" class="btn">setStrokeWeight</button>
        <button id="visibleT" class="btn">setVisible</button>
    </div>
</body>

</html>