javascript - 谷歌映射重叠形状的边界

时间:2018-02-28 15:39:38

标签: javascript google-maps

我遇到了在地图上绘制点并使点内部透明的问题。如果形状没有重叠点,它可以很好地工作,但正如您在本例中所见,有一个三角形和一个正方形,它们重叠,只有一个形状将fillOpacity设置为0 ..

enter image description here

我正在使用的代码是:

MapPoll.prototype._redrawBoundaries = function () {
    var allWorld = [
        new google.maps.LatLng(85, 180),
        new google.maps.LatLng(85, 90),
        new google.maps.LatLng(85, 0),
        new google.maps.LatLng(85, -90),
        new google.maps.LatLng(85, -180),
        new google.maps.LatLng(0, -180),
        new google.maps.LatLng(-85, -180),
        new google.maps.LatLng(-85, -90),
        new google.maps.LatLng(-85, 0),
        new google.maps.LatLng(-85, 90),
        new google.maps.LatLng(-85, 180),
        new google.maps.LatLng(0, 180),
        new google.maps.LatLng(85, 180)
    ];

    this.map.data.setStyle({
        cursor: "not-allowed",
        fillColor: "#000000",
        fillOpacity: this._showBoundaries ? 0.25 : 0,
        strokeWeight: 1
    });
    if (this._boundaries.length > 0) {
        this._boundariesPolygon = new google.maps.Polygon({ paths: this._boundaries });

        console.log(this._boundaries)

    this.map.data.add({
        geometry: new google.maps.Data.Polygon([allWorld, this._boundaries])
    });
    }
    else {
        this._boundariesPolygon = null;
    }

};

this._boundaries是一个如下所示的点列表:

0: {lat: 36.032487228417146, lng: -78.83335640047085}
1: {lat: 36.036929334756095, lng: -78.88279487703335}
2: {lat: 36.24542550544885, lng: -78.84983589265835}
3: {lat: 35.66738312535577, lng: -78.85532905672085}
4: {lat: 35.63167328632597, lng: -78.27854683015835}
5: {lat: 36.010272939034245, lng: -78.21262886140835}
6: {lat: 36.041371190553185, lng: -78.84983589265835}

有谁知道为什么会这样?这真的令人沮丧,似乎它应该工作!谢谢:))

0 个答案:

没有答案