给你:
// Create a rectangle
var rectangle = new google.maps.Rectangle({
strokeOpacity: 0,
strokeWeight: 0,
fillColor: '#FF0000',
fillOpacity: .6,
bounds: new google.maps.LatLngBounds(
new google.maps.LatLng(33, 3),
new google.maps.LatLng(44, 25)
),
zIndex: 0
});
// Get the rectangle bounds
var rb = rectangle.getBounds();
// Create a triangle
var triangle = new google.maps.Polygon({
strokeOpacity: 0,
strokeWeight: 0,
fillColor: '#00FF00',
fillOpacity: .6,
paths: [
new google.maps.LatLng(39, 4),
new google.maps.LatLng(34, 24),
new google.maps.LatLng(43, 24),
new google.maps.LatLng(39, 4)
],
zIndex: 1
});
// Get rectangle points coordinates (path)
var rectangleCoords = [
new google.maps.LatLng(rb.getNorthEast().lat(), rb.getSouthWest().lng()),
new google.maps.LatLng(rb.getNorthEast().lat(), rb.getNorthEast().lng()),
new google.maps.LatLng(rb.getSouthWest().lat(), rb.getNorthEast().lng()),
new google.maps.LatLng(rb.getSouthWest().lat(), rb.getSouthWest().lng()),
new google.maps.LatLng(rb.getNorthEast().lat(), rb.getSouthWest().lng())
];
// Create polygon from rectangle coords and triangle path
var polygon = new google.maps.Polygon({
paths: [rectangleCoords, triangle.getPath()],
strokeOpacity: 0,
strokeWeight: 0,
fillColor: '#FF0000',
fillOpacity: .6,
map: map
});
注意:一个更简单的解决方案是创建像三角形一样的矩形(多边形而不是矩形),这样你就可以直接调用getPath()。
希望这会有所帮助。下面是一个工作演示。
JSFiddle demo