【问题标题】:How to draw custome text inside polygon in KML?如何在 KML 中的多边形内绘制自定义文本?
【发布时间】:2017-06-23 08:56:18
【问题描述】:

我想使用 KML 文件在多边形内绘制自定义文本。 我的多边形 Kml 文件-

 <?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2"><Document><Style id="White"><PolyStyle><color>64FFFFFF</color></PolyStyle></Style><Placemark><styleUrl>#white</styleUrl><Polygon><outerBoundaryIs><LinearRing><coordinates>-95.27999999999997,30.0175 -95.27166999999997,30.0175 -95.27166999999997,30.01083 -95.27999999999997,30.01083 -95.27999999999997,30.0175</coordinates></LinearRing></outerBoundaryIs></Polygon><ExtendedData><Data name="isColorful">true</Data><Data name="color">white</Data></ExtendedData></Placemark></Document></kml>

我是否缺少在多边形中心显示文本的任何标记或属性。 请帮忙。

实际上,我想在多边形内显示一些数据,我使用 Point 和多边形创建了 KML。 -我将图标比例设为 0 以隐藏图标。 它在“Google Earth”中显示多边形内的名称标签,但在“Google map”中不显示标签。 请查看我的示例 KML 文件

<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2"><Document><Style id="White"><IconStyle> <color>ff00ff00</color>         <colorMode>random</colorMode><scale>0</scale></IconStyle><LabelStyle><scale>0.6</scale></LabelStyle><PolyStyle><color>64FFFFFF</color></PolyStyle></Style><Placemark><name>64,100</name><styleUrl>#White</styleUrl><MultiGeometry><Point><coordinates>-95.27899999999997,30.0172</coordinates></Point><Polygon><outerBoundaryIs><LinearRing><coordinates>-95.27999999999997,30.0175 -95.27166999999997,30.0175 -95.27166999999997,30.01083 -95.27999999999997,30.01083 -95.27999999999997,30.0175</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry></Placemark><Placemark><name>65,93</name><styleUrl>#White</styleUrl><MultiGeometry><Point><coordinates>-95.27066999999997,29.97053</coordinates></Point><Polygon><outerBoundaryIs><LinearRing><coordinates>-95.27166999999997,29.97083 -95.26333999999997,29.97083 -95.26333999999997,29.96417 -95.27166999999997,29.96417 -95.27166999999997,29.97083</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry></Placemark></Document></kml>

【问题讨论】:

    标签: kml


    【解决方案1】:

    KML 中的某些元素出现故障,使其在 KML 2.2 规范方面无效。应首先验证 KML。 here 讨论了一些验证 KML 的技巧。

    ExtendedData 元素不正确。缺少必需的 value 元素。

    <ExtendedData>
        <Data name="isColorful">true</Data>
        <Data name="color">white</Data>
    </ExtendedData>
    

    这需要重新构造:

    <ExtendedData>
        <Data name="isColorful">
            <value>true</value>
        </Data>
        <Data name="color">
            <value>white</value>
        </Data>
    </ExtendedData>
    

    如果 KML 地标具有 ExtendedData,则这些数据字段在单击时会在描述气球弹出窗口中格式化为人类可读的 HTML 表格。

    如果您想覆盖 HTML 表格,请将 &lt;description&gt; 添加到可以包含 HTML 标记的 KML 地标。请参阅KML reference docs 中的说明部分。

    更新: 如果希望文本出现在多边形上,则需要按照您的描述在 MultiGeometry 中包含点和多边形,但还需要将 &lt;name&gt; 元素添加到地标。名称元素的文本将是显示在该点位置的标签。这适用于谷歌地球,但不适用于谷歌地图。 KML 在 Google 地图中有一些限制。如果想将文本添加到多边形的中心,请通过 Google Maps API 添加标签标记。 https://developers.google.com/maps/documentation/javascript/examples/marker-labels

    【讨论】:

    • 实际上,我想在多边形内显示一些数据,我使用 和 Point 和多边形创建了 KML。 -我将图标比例设为 0 以隐藏图标。它在“谷歌地球”中的多边形内显示名称标签,但在“谷歌地图”中不显示标签。
    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 2020-10-05
    • 2022-12-10
    • 1970-01-01
    • 2012-05-14
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多