我有一个监控 API 的程序。 API 每隔几秒轮询一次,它可能会返回一些城市数组。我将这些城市,每一个,转换为坐标,我可能有一个经度和纬度,或者一个由一组纬度和经度组成的多边形。
我正在使用 NodeJS 进程来轮询该 API,当代码触发数据聚合和地图生成过程时,我正在构建一个坐标数组,并向 google 静态地图 api 发送 GET 请求,并将数据作为查询params 并获取带有标记/多边形的地图图像。
问题是,每当我获得的城市数组足够大时,我可能会遇到包含 30k 字符的聚合 URL,无法通过 GET 发送它,因为我遇到的 Apachi Web 服务器的最大限制约为 8k 字符,因此请求失败。
如何改进使用许多 lng 和 lats 生成地图的过程,以在地图上获取多边形和标记?
文档说明了有关 URL 的一些内容。
地图静态 API URL 的大小限制为 16384 个字符。实际上,您可能不需要比这更长的 URL,除非您生成具有大量标记和路径的复杂地图。
还有
您可以通过在路径的位置声明中使用 enc: 前缀将路径声明为编码折线,而不是一系列位置。
请参阅 https://developers.google.com/maps/documentation/utilities/polylineutility?hl=en
此页面说的是
此实用程序使用 Maps JavaScript API。具体来说,路径的编码和解码由
命名空间中的静态方法encodePath()
和decodePath()
处理。google.maps.geometry.encoding
有关相关文档,请参阅 https://developers.google.com/maps/documentation/javascript/geometry?hl=en#Encoding。
折线编码不能作为 Web 服务使用,但我发现至少有几个 Node 库可以实现它。