GM 面积计算

时间:2024-07-18admin美文摘句
              Google Map 面积测算
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" href="style.css"></link>
        <script
            src="/maps?file=api&v=2&key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA&hl=zh-CN"
            type="text/javascript"></script>
        <style type="text/css">
       
        v\:* { behavior:url(#default#VML); }
       
        body { font-family: Verdana; }
       
        h3 { margin-left: 8px; }
       
        #map { height: 400px;
            width: 550px;
            border: 1px solid gray;
            margin-top: 8px;
            margin-left: 8px;
        }
        .button { display: block;
            width: 180px;
            border: 1px Solid #565;
            background-color:#F5F5F5;
            padding: 3px;神鬼八阵图电视剧全集免费
            text-decoration: none;
            text-align:center;
            font-size:smaller;
        }
        .button:hover {
            background-color: white;
        }
               
        #descr { position:absolute;
            top:44px;
            left: 580px;
            width: 250px;
        }
       
        </style>
    </head>
    <body onload="load()" onunload="GUnload()">
        <div id="map" ></div>
        <table id="descr" border="0" cellspacing="10" cellpadding="1">
            <tr>
                <td ><font color="#ff0000">
                    面积为:</span></font>
                </td>
            </tr>
            <tr>
                <td id="status"><font color="#ff0000">
                     
                </font></td>
            </tr>
            <tr>
                <td height="20">
                     
                </td>
            </tr>
            <tr>
                <td>
                    <a href="#" class="button" onclick="zoomToPoly();return false;">多边形测面积</a>
                </td>
            </tr>
            <tr>
                <td>
                    <a href="#" class="button" onclick="clearPoly();return false;">清除</a>
                </td>
            </tr>
        </table>
    </body>
    <script type="text/javascript">
        var cenx = 41.76583333;
        var ceny =123.4136111;
        var stzoom=13;
        var map;
        var polyShape;
        var polyLineColor = "#68228B";
        var polyFillColor = "#00CD00";
        var polyPoints = new Array();
        var markers = new Array();
        var report = ElementById("status");       
        function load(){
            //检查浏览器的兼容性.
            if (GBrowserIsCompatible()){
                map=new ElementById("map"), {draggableCursor:'crosshair', draggingCursor:'move'});               
                //设置地图的中心坐标.
                var loc = new GLatLng(cenx,ceny);
                map.setCenter(loc, stzoom);
                map.setMapType(G_HYBRID_MAP);
                //设置地图的缩放工具.
                map.setUIToDefault();
                map.disableDoubleClickZoom();
              drawPoly();
            }
        }             
        function addIcon(icon) {
            icon.iconSize = new GSize(11, 11);
            icon.dragCrossSize = new GSize(0, 0);
            icon.shadowSize = new GSize(11, 11);
            icon.iconAnchor = new GPoint(5, 5);
        }       
        function drawPoly() {       
            if(polyShape) veOverlay(polyShape);
            polyPoints.length = 0;   
            var points = [];
            points[0] = new GLatLng(41.76583333,123.4136111);
            points[1] = new GLatLng(41.76583333,123.4144444);
            points[2] = new GLatLng(41.76472222,123.4144444);
            var markers = [];
            for (var i = 0; i < points.length; i++) {
                markers[i] = new GMarker(points[i]);
                //将该标注添加至地图
                map.addOverlay(markers[i]);
            }
            for(i = 0; i < markers.length; i++) {
              polyPoints.push(markers[i].getLatLng());
            }
            // 关闭多边形
            polyShape = new GPolygon(polyPoints, polyLineColor, 3, .8, polyFillColor,.3);
            var unit = " km²";
            var area = Area()/(1000*1000);           
            if(markers.length <= 2 ) {
              report.innerHTML = " ";
            }
            else if(markers.length > 2 ) {
              report.innerHTML = Fixed(3)+ unit;
            }
            map.addOverlay(polyShape);
        }   
        function zoomToPoly() {
            drawPoly();
        if(polyShape && polyPoints.length > 0) {
          var bounds = Bounds();
          map.Center());
          map.BoundsZoomLevel(bounds));   
        }
        }   
        function clearPoly() {
        //清除面积,同时初始化文字
        map.clearOverlays();
        polyPoints.length = 0;
        markers.length = 0;
        report.innerHTML = " ";
        }
    </script>
   
</html>