我想用JavaScriptAPIv3创建一个甜甜圈(里面的空间像个洞)
我想在JavaScriptGoogleAPIv3中创建一个漏洞,所以我开始学习GoogleMapAPIv3。但是代码正在渲染整个区域。这是我的Javascript代码我想用JavaScriptAPIv3创建一个甜甜圈(里面的空间像个洞),javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我想在JavaScriptGoogleAPIv3中创建一个漏洞,所以我开始学习GoogleMapAPIv3。但是代码正在渲染整个区域。这是我的Javascript代码 (function() { window.onload = function() { // Creating a map var options = { zoom: 6, center: new google.maps.LatLng(36.5,
(function() {
window.onload = function() {
// Creating a map
var options = {
zoom: 6,
center: new google.maps.LatLng(36.5, -79.8),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map'), options);
// Creating an array with the points for the outer polygon
var polyOuter = [
new google.maps.LatLng(37.303, -81.256),
new google.maps.LatLng(37.303, -78.333),
new google.maps.LatLng(35.392, -78.333),
new google.maps.LatLng(35.392, -81.256)
];
// Creating an array with the points for the inner polygon
var polyInner = [
new google.maps.LatLng(36.705, -80.459),
new google.maps.LatLng(36.705, -79),
new google.maps.LatLng(35.9, -79),
new google.maps.LatLng(35.9, -80.459)
];
var points = [polyOuter, polyInner];
// Creating the polygon
var polygon = new google.maps.Polygon
({
paths: points,
map: map,
strokeColor: '#ff0000',
strokeOpacity: 0.6,
strokeWeight: 3,
fillColor: '#FF0000',
fillOpacity: 0.35
});
};
})();
必须还原其中一条路径,以便在不同方向绘制多边形,例如:
var polyInner = [
new google.maps.LatLng(35.9, -80.459),
new google.maps.LatLng(35.9, -79),
new google.maps.LatLng(36.705, -79),
new google.maps.LatLng(36.705, -80.459)
];
我的假设是,原因是SVG或画布如何呈现闭合循环。如果我没有错的话,解释就在于非零绕组规则
外部路径是顺时针绘制的,内部路径是逆时针绘制的
将计数器设置为零。在对象区域中拾取一个点,并沿对象空间外的方向绘制一条线。如果直线与顺时针方向交叉,则添加一条。如果直线穿过逆时针方向的路径段,则减去一。如果选定点的最终结果为非零,则浏览器将填充该区域。如果最终结果为零,则浏览器不会填充它
所以,如果你在“洞”中拾取点,结果将为零,面积将不会被填充。太棒了,请你也解释一下好吗。@莫希特:希望这个解释有帮助。是的,它当然也帮助了我,也将帮助其他人理解,因为它不在书中,但我认为有些东西只是通过经验传授的,再次感谢。