无法使用Google Map API V2绘制多边形

时间:2013-12-05 06:35:02

标签: google-maps google-maps-api-2

我有以下功能,我试图用某个Lat Long绘制多边形

function AddTile( minLat, minLon, maxLat, maxLon )
        {
            var points      = [];


            points.push( new GLatLng( parseFloat(maxLat),   parseFloat(maxLon)  ));
            points.push( new GLatLng( parseFloat(minLat),   parseFloat(maxLon)  ));
            points.push( new GLatLng( parseFloat(minLat),   parseFloat(minLon)  ));
            points.push( new GLatLng( parseFloat(maxLat),   parseFloat(minLon)  ));               
            var polygon = new GPolygon(points, "#f33f00", 5, 1, "#ff0000", 0.2);
        map.addOverlay(polygon);


    //map.addOverlay(new GPolyline(points,'#8080FF', 8, 0.5, '#8080FF', 0.5));


        }

但无法在地图上绘制多边形。如何绘制Polyline,显示这些线之间存在间隙。 我想知道的是我的Google地图API是否不再支持绘制多边形。我正在使用Google maps API V2。如果有办法对此进行排序然后描述。 此外,如果无法绘制多边形,那么我如何使用新的GPolyline()构造来绘制没有任何间隙和背景颜色的poline以消除线条的间隙。 我已经尝试给重量值10,这使得线条更加坚固,从而使我不想要的非透明。 请指导。 谢谢

1 个答案:

答案 0 :(得分:1)

由于 geocodezip 建议您使用API​​ v3。下面我已经使用旧的(已弃用的)v2函数(如GLatLng,GPolygon)转换为v3等效代码。看看它是否有效

function AddTile( minLat, minLon, maxLat, maxLon)
{
    var mapOptions = {
                      zoom: 4,
                      center: new google.maps.LatLng( 5.44, 22.67),  // set centre somewhere in Africa
                      mapTypeId: google.maps.MapTypeId.TERRAIN
                      };     
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    var points      = [];
    points.push( new google.maps.LatLng( parseFloat(maxLat), parseFloat(maxLon) ));
    points.push( new google.maps.LatLng( parseFloat(minLat), parseFloat(maxLon) ));
    points.push( new google.maps.LatLng( parseFloat(minLat), parseFloat(minLon) ));
    points.push( new google.maps.LatLng( parseFloat(maxLat), parseFloat(minLon) ));
    points.push( new google.maps.LatLng( parseFloat(maxLat), parseFloat(minLon) ));  // same as your 1st point, // polygons should be closed

    // Draw polygon.
    var polygon = new google.maps.Polygon({
                      paths: points,
                      strokeColor: '#f33f00',
                      strokeOpacity: 1,
                      strokeWeight: 5,
                      fillColor: '#ff0000',
                      fillOpacity: 0.2
                   });
    polygon.setMap(map);

    google.maps.event.addListener(map, 'click', function(event){
       alert('whatever you want to do');
    });  // in case you want to do something on user click
}