我有以下功能,我试图用某个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,这使得线条更加坚固,从而使我不想要的非透明。 请指导。 谢谢
答案 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
}