小编Rya*_*yan的帖子

使用“addfeature”加载多边形中的孔

我有一个地图编辑器,可以让用户绘制和修改多边形。可以在多边形内部绘制多边形以创建“孔”。

我面临的问题是在地图上绘制内部多边形并保存地图数据之后 - 地图在页面刷新时变得混乱。即使 GeoJSON 正确,地图也不会显示原始形状。我怀疑该addfeature事件没有正确处理内部和外部多边形。

如何修复才能addfeature正确显示保存的地图数据?

预期输出:

洞

实际输出:

无孔

更新:我已经尝试过这个,它部分有效,但它切断了多边形数据。我添加了另一层来查看原始形状:

//When the data is loaded from the geojson it is processed here
map.data.addListener('addfeature', function(e) {
    //center map
    processPoints(e.feature.getGeometry(), bounds.extend, bounds);
    map.fitBounds(bounds);

    //check for polygon in case we do other shapes
    if (e.feature.getGeometry().getType() == "Polygon") {

        // lat/lng array
        let _map_d = []

        e.feature.getGeometry().forEachLatLng(function(latLngArry) {
            // populate array
            _map_d.push(latLngArry);
        });

        //Create a polygon with the lat long array
        let polygon = new google.maps.Polygon({
            map: map,
            paths: _map_d, …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps google-maps-api-3

5
推荐指数
1
解决办法
348
查看次数