Google 静态地图 API 未渲染多边形的最后一条路径

Google Maps Static API not rendering last path of polygon

我有一个软件可以让用户在地图上定义特定的边界。为了实现这一点,我使用了 GoogleMaps 的绘图功能。一旦用户完成绘制边界,我就会得到并对路径进行编码以存储它。如果我编辑同一条记录,它会完美地工作。边界已正确生成。我对编码路径进行解码并将其设置为在地图上生成绘图的边界变量。但是,如果我尝试将完全相同的路径发送到 Google Maps Static API,它就不起作用。最后一个路径总是空白。

这是使用常规 API 将编码路径加载到地图中的代码(它工作正常):

let bounds = new google.maps.LatLngBounds();
let decodedArray = google.maps.geometry.encoding.decodePath(EncodedPath);
this.selectedOverlay = new google.maps.Polygon({ paths: decodedArray });

this.selectedOverlay.setMap(this.map);
this.selectedOverlay.getPath().forEach((element: google.maps.LatLng) => {
    bounds.extend(element);
});
this.map.setCenter(bounds.getCenter());

这是由常规 API 生成的地图:

这是静态生成的地图API:

这是要生成地图的URL:

https://maps.googleapis.com/maps/api/staticmap?key=[api_key_here]&size=709x470&path=weight:2|fillcolor:0x00000040|color:0x000000aa|enc:ebxwFnxsbMbGxDpFwPkG{D

如您所见,最后一个路径是空白的。我测试了几个不同的多边形,结果都一样!最后一个路径总是空白...

有什么解决办法吗?

我在这里阅读了很多问题,但大多数(如果不是全部)都与双反斜杠有关,这不是我的情况(请参阅生成的 URL)。

谢谢!

多边形的边界正是您给它的路径:

如果你想让它包围数组,做一个封闭的路径:

https://maps.googleapis.com/maps/api/staticmap?size=709x470&path=weight:2|fillcolor:0x00000040|color:0x000000aa|enc:ebxwFnxsbMbGxDpFwPkG{DiFxP

解决方案是 2013 年的一个答案:Polygons are not closed

如评论所述,将多边形的第一项添加为最后一项可以解决问题。