supermMap 画圆

<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>选择中心点画圆</title>
<style type="text/css">
body {
    margin: 0;
    overflow: hidden;
    background: #fff;
}

#map {
    position: relative;
    height: 520px;
    border: 1px solid #3473b7;
}

#toolbar {
    position: relative;
    height: 33px;
    padding-top: 5;
}
</style>
<script src='../libs/SuperMap.Include.js'></script>
<script type="text/javascript">
    //生命需要的变量
    var local, map, layer, vectorLayer, markerLayer, drawPoint, centersArray = [], weightsArray = [],
    n = 0, point,style = {
        strokeColor : "#304DBE",
        strokeWidth : 1,
        pointerEvents : "visiblePainted",
        fillColor : "#304DBE",
        fillOpacity : 0.4},
    url1 = "http://114.251.53.254:8090/iserver/services/map-TZ_MapWorkSpace/rest/maps/TZMap";//改成自己的
    //加载地图
    function init() {
        vectorLayer = new SuperMap.Layer.Vector("Vector Layer");
        drawPoint = new SuperMap.Control.DrawFeature(vectorLayer,
                SuperMap.Handler.Point);
        //添加drawPoint触发事件
        drawPoint.events.on({
            "featureadded" : drawCompleted
        });
        map = new SuperMap.Map("map", {
            controls : [ new SuperMap.Control.LayerSwitcher(),
                    new SuperMap.Control.ScaleLine(),
                    new SuperMap.Control.Zoom(),
                    new SuperMap.Control.Navigation({
                        dragPanOptions : {
                            enableKinetic : true
                        }
                    }), drawPoint ],
            units : "m"
        });
        layer = new SuperMap.Layer.TiledDynamicRESTLayer("tongzhou", url1, {
            transparent : true,
            cacheEnabled : true
        }, {
            maxResolution : "auto"
        });
        layer.events.on({
            "layerInitialized" : addLayer
        });
        vectorLayer = new SuperMap.Layer.Vector("Vector Layer");
        markerLayer = new SuperMap.Layer.Markers("Markers");
    }
    //REST异步加载
    function addLayer() {

        map.addLayers([ layer, vectorLayer, markerLayer ]);
        map.setCenter(new SuperMap.LonLat(116.708, 39.840), 11, false, false);
    }
    //选择中心点点击事件
    function selectCenters() {
        clearElements();
        //激活drawPoint控件,触发drawCompleted(drawGeometryArgs)函数
        drawPoint.activate();
    }
    function drawCompleted(drawGeometryArgs) {
        //获取圆中心点
        point = drawGeometryArgs.feature.geometry,
        size = new SuperMap.Size(44, 33),
        offset = new SuperMap.Pixel(-(size.w / 2), -size.h),
        icon = new SuperMap.Icon("../theme/images/marker.png", size, offset);
        //给中心点添加marker
        markerLayer.addMarker(new SuperMap.Marker(new SuperMap.LonLat(point.x,
                point.y), icon));
        console.info("point.x="+point.x);
        console.info("point.y="+point.y);
        //销毁drawPoint
        drawPoint.deactivate();
        centersArray.push(point);
        n++;
        weightsArray.push(400 + n * 100);
        //当点击获取中心点是直接画圆
        //getCirle(point);
        
    }
    //提交函数
    function findServiceAreas() {
        //调用画圆的函数
        getCirle(point);
    }
    //画圆函数
    function getCirle(point) {
        //sides画圆参数要大于20
        var sides = 50;
        //中心点
        var origin = point;
        //画圆
        var polygon = SuperMap.Geometry.Polygon.createRegularPolygon(origin,0.01,sides);//0.01是半径
        //添加到矢量图层
        var lineVector = new SuperMap.Feature.Vector(polygon);
        vectorLayer.addFeatures(lineVector);
    }
    //清除函数
    function clearElements() {
        n = 0;
        centersArray = [];
        weightsArray = [];
        markerLayer.clearMarkers();
        vectorLayer.removeAllFeatures();
    }
</script>
</head>
<body οnlοad="init()">
    <div id="toolbar">
        <input type="button" value="选择中心点" οnclick="selectCenters()" /> <input
            type="button" value="提交" οnclick="findServiceAreas()" /> <input
            type="button" value="清除" οnclick="clearElements()" />
    </div>
    <div id="map"></div>
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值