1

我正在构建一个谷歌地图,它解析一个 SVG 并将路径转换为相应的数据层。我遇到的问题之一是渲染道路名称,因为 SVG 会显示未来的道路。

我当前的过程需要将文本转换为轮廓,然后将路径转换为众所周知的文本,然后再将其转换为 GeoJSON。然而,这有两个问题是文本出现严重扭曲,并且任何带有孔的字符(例如 A 和 B)都被完全填充,因为它只是跟踪轮廓以创建多边形。

下面分别是 SVG 和渲染地图的片段:

在此处输入图像描述 在此处输入图像描述

丢失孔的最坏情况解决方案是为每个字符创建子组,其路径描述空白区域,以便可以将它们附加到几何数组。这将是一项非常乏味的任务,我怀疑某些事情可以自动化。

我不知道是什么导致了失真,但我怀疑解析器没有正确读取 SVG 坐标。

这是文本路径之一的示例:

<path class="cls-11" d="M897.42,943.78l0-.79.7-.25,0-1.14-.72-.2,0-.78,3.24,1.06,0,.85Zm1.23-1.22,1.06-.38a1.4,1.4,0,0,1,.29-.06v0a1.25,1.25,0,0,1-.28,0l-1.09-.31Z"/>

我正在使用SVG-to-WKTTerraformer以及一些 janky 数学将 SVG 转换为 GeoJSON。该过程产生了可接受的结果,除了它没有补偿墨卡托投影这一事实。

关于我如何能够达到预期结果的任何想法?

4

0 回答 0