当前位置: 首页 > 知识库问答 >
问题:

谷歌地球为什么要改变KML多边形坐标?

呼延臻
2023-03-14

我的目标是能够使用KML文件在谷歌地球的定义区域上绘制一个阴影多边形。我已经创建了一个KML文档与一个地方标志和一个多边形所需的坐标,并能够导入到谷歌我的地图文件和显示多边形。然而,当我用谷歌地球打开同一个文件时,坐标似乎被不同地解析,多边形也不正确(见图)。有什么我错过了我的KML文件,导致谷歌地球这样做?

这些是原始文件坐标。

<coordinates>
    149.02126, -36.489864, 100
    149.3816, -36.31477, 100
    149.25783, -36.134285, 100
    148.9647, -36.4074, 100
    149.02126, -36.489864, 100
</coordinates>

如果我从google earth复制多边形并将其粘贴到文本文件中作为KML,我会得到以下坐标

<coordinates>
    149.02126,-36.489864,100 
    149.3816,0,0 
    -36.31477,100,0 
    149.25783,-36.134285,100 
    148.9647,-36.4074,100 
    149.02126,-36.489864,100 
</coordinates>

完整的原始KML文件:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
   <Document>
      <Style id="examplePolyStyle">
         <PolyStyle>
            <color>7f0000ff</color>
            <colorMode>random</colorMode>
            <fill>1</fill>
            <outline>1</outline>
         </PolyStyle>
      </Style>
      <Placemark>
         <name>ID: AU201502070705001Issued: 2015-02-07T07:53:00.000Z</name>
         <description>Begins: 2015-02-07T07:53:00.000ZEnds: 2015-02-07T08:38:00.000Z</description>
         <styleUrl>#examplePolyStyle</styleUrl>
         <Polygon>
            <outerBoundaryIs>
               <LinearRing>
                  <coordinates>149.02126, -36.489864, 100 149.3816, -36.31477, 100 149.25783, -36.134285, 100 148.9647, -36.4074, 100 149.02126, -36.489864, 100</coordinates>
               </LinearRing>
            </outerBoundaryIs>
         </Polygon>
      </Placemark>
   </Document>
</kml>    

从Google Earth复制的完整KML文件

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
    <name>Latest_Single_noCommaNoSpaces.kml</name>
    <Style id="examplePolyStyle">
        <PolyStyle>
            <color>7f0000ff</color>
            <colorMode>random</colorMode>
        </PolyStyle>
    </Style>
    <Placemark>
        <name>ID: AU201502070705001Issued: 2015-02-07T07:53:00.000Z</name>
        <description>Begins: 2015-02-07T07:53:00.000ZEnds: 2015-02-07T08:38:00.000Z</description>
        <styleUrl>#examplePolyStyle</styleUrl>
        <gx:balloonVisibility>1</gx:balloonVisibility>
        <Polygon>
            <outerBoundaryIs>
                <LinearRing>
<coordinates>
    149.02126,-36.489864,100 
    149.3816,0,0 
    -36.31477,100,0 
    149.25783,-36.134285,100 
    148.9647,-36.4074,100 
    149.02126,-36.489864,100 
</coordinates>
                </LinearRing>
            </outerBoundaryIs>
        </Polygon>
    </Placemark>
</Document>
</kml>

共有1个答案

萧成文
2023-03-14

原始KML坐标在元组中有空格,这是无效的(空格分隔元组)。

从留档:

<代码>

<coordinates>149.02126, -36.489864, 100 149.3816, -36.31477, 100 149.25783, -36.134285, 100 148.9647, -36.4074, 100 149.02126, -36.489864, 100</coordinates>

应该是:

<coordinates>149.02126,-36.489864,100 149.3816,-36.31477,100 149.25783,-36.134285,100 148.9647,-36.4074,100 149.02126,-36.489864,100</coordinates>
 类似资料:
  • 我用谷歌地球创建了一个kml文件,它使用外部图像创建了一个覆盖层。它工作得很好,我想找到一种相当方便的转换kml的方法,这样谷歌地图就可以以类似的方式读取和显示它。 谷歌地图不能处理谷歌地球坐标,所以我试图自己转换它们。例如,我替换了地球坐标: 使用等效地图坐标: 不幸的是,两者并不完全“对等”。“地图覆盖”稍微关闭,旋转不正确。 以下是两张照片: 地球实例 地图示例 我明白为什么它不起作用,但我

  • 我想用多边形类和一组lat/lng坐标在谷歌地图上画一个城区区域。 OpenStreetMap为我提供了所需的所有数据——如果我键入一些地区名称,我可以获得OSM XML格式的有用数据,例如拉脱维亚里加“Vecmilgravis”地区的OSM绘制多边形,以及OSM XML格式的数据。 问题是所有这些节点都是按某种奇怪的顺序排序的,因此如果我只提取所有和对,并为Google Maps多边形类创建一个

  • 我正在使用geojson数据处理Google地图中的图层。 我现在有一个有四个不同多边形的图层,当你点击它们时,它们会从灰色变成绿色。但是当我再次点击时,它不会变回灰色,这就是点击功能的目的。 在我的情况下,它适用于我的编辑器,https://embed.plnkr.co/hi4MtjO8f0PN6rCW70rE/。这是完整的代码段。 我修好了!!我更改了几行的位置,并将其设置为false或tru

  • 还有人发现谷歌地图(现在)允许你平移到两极之外有问题吗?它曾经停在两极,对吗? 每次用户平移或缩放地图时,我正在工作的一个站点都会在我们的服务器上执行基于位置的查询。这会导致错误,因为用户从地图边缘平移触发的查询是荒谬的。 现在,可以说,我正在服务器端处理edge案例,但在客户端这不是一个很好的用户体验。有没有人有防止过度平移的解决方案? 谢谢

  • 我想实现喜欢用户可以从我们的应用程序在谷歌地图绘制一个区域。然后当他回来的时候,然后应该加载他/她以前画的数据。 我用了两种方法。一是,, > 使用javascript在googlemap中绘制多边形 https://developers.google.com/maps/documentation/javascript/drawinglayer 使用谷歌地图api数据层<代码>http://jsf

  • 我对类似的http://wiki.openstreetmap.org/wiki/Nominatim 即,为了能够提出请求并获得某种多边形坐标: “geojson:{“类型”:“多边形”,“坐标”:[[[-87.464761,44.600998],-87.459755,44.599569],-87.459745,44.601012],-87.463143,44.601],-87.464761,44.