如何在单击按钮后停止Google地图绘制第二个矩形

时间:2013-04-16 15:32:20

标签: maps rectangles

我使用以下代码在地图上绘制一个随机lat的矩形。 &安培;长。单击查找按钮时基于城市名称。问题是如果你没有输入不同的城市名称并单击查找按钮,程序将在城市原始lat上绘制第二个矩形。 &安培;长。我要么需要清除地图并重新绘制矩形或不太确定的东西,所以无法绘制第二个矩形。这是我正在使用的代码。

    function codeAddress() {
        var address = document.getElementById("gadres").value;

        if(address=='') {
            alert("Address can not be empty!");
            return;

        }


        geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {

                map.setCenter(results[0].geometry.location);
                document.getElementById('lat').value=results[0].geometry.location.lat().toFixed(6);
                document.getElementById('lng').value=results[0].geometry.location.lng().toFixed(6);
                var latlong = "(" + results[0].geometry.location.lat().toFixed(6) + " , " +
                + results[0].geometry.location.lng().toFixed(6) + ")";

                map.setZoom(15);

                var mapcenter = map.getCenter();
                var maplat = mapcenter.lat();
                var maplng = mapcenter.lng();

                var bounds = new google.maps.LatLngBounds(
                    new google.maps.LatLng(maplat - 0.002, maplng - 0.002),
                    new google.maps.LatLng(maplat + 0.002, maplng + 0.002)
                );

                var rectangle = new google.maps.Rectangle({
                    bounds: bounds,
                    draggable:true,
                    editable: true,
                    strokeColor: '#FF0000',
                    strokeOpacity: 0.8,
                    strokeWeight: 4,
                    fillColor: '#FF0000',
                    fillOpacity: 0.30,
                });

                rectangle.setMap(map);

                google.maps.event.addListener(rectangle, 'bounds_changed', function() {
                    document.getElementById('coords').value = rectangle.getBounds();

                });


            } else {
                alert("Lat and long cannot be found.");
            }
        }); 

    } 
所有人都非常感谢。

1 个答案:

答案 0 :(得分:0)

我还没有尝试过这个,但也许你可以将你的边界存储到一个数组然后使用该数组的循环语句来检查是否有使用equals()方法的相等边界 https://developers.google.com/maps/documentation/javascript/reference#LatLngBounds