【问题标题】:KML with network links and thousands of polygons具有网络链接和数千个多边形的 KML
【发布时间】:2020-01-13 18:08:24
【问题描述】:

我需要在 Google 地图上显示 8000 个多边形(某些美国邮政编码 - 不是全部)。我有一个“根”KML 文件,其中包含按地区划分这些邮政编码的 10 个网络链接。在这些区域网络链接中,我有更多的网络链接,这些链接按州划分,每个文件平均约 300 个多边形。以下是我的 KML 文件示例(例如缩短):

根.kml:

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>regions</name>
    <NetworkLink>
      <Link>
        <href>https://url/region0.kml</href>
        <viewRefreshMode>onRegion</viewRefreshMode>
      </Link>
    </NetworkLink>
    <NetworkLink>
      <Link>
        <href>https://url/region1.kml</href>
        <viewRefreshMode>onRegion</viewRefreshMode>
      </Link>
    </NetworkLink>
    <!-- additional Network Link regions -->
  </Document>
</kml>

region0.kml:

?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>region0</name>
    <NetworkLink>
      <Region>
        <LatLonAltBox>
          <north>36.244860000000003</north>
          <south>31.542739999999998</south>
          <east>-109.49429000000001</east>
          <west>-114.66689</west>
        </LatLonAltBox>
        <Lod>
          <minLodPixels>128</minLodPixels>
          <maxLodPixels>1024</maxLodPixels>
          <minFadeExtent>128</minFadeExtent>
          <maxFadeExtent>512</maxFadeExtent>
        </Lod>
      </Region>
      <Link>
        <href>https://url/US-AZ.kml</href>
        <viewRefreshMode>onRegion</viewRefreshMode>
      </Link>
    </NetworkLink>
    <!-- additional State KMLs for this region -->
  </Document>
</kml>

美国-AZ.kml:

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>US-AZ</name>
    <Region>
      <LatLonAltBox>
        <north>36.244860000000003</north>
        <south>31.542739999999998</south>
        <east>-109.49429000000001</east>
        <west>-114.66689</west>
      </LatLonAltBox>
      <Lod>
        <minLodPixels>128</minLodPixels>
        <maxLodPixels>1024</maxLodPixels>
        <minFadeExtent>128</minFadeExtent>
        <maxFadeExtent>512</maxFadeExtent>
      </Lod>
    </Region>
    <Placemark>
      <name>85208</name>
      <Polygon>
        <outerBoundaryIs>
          <LinearRing>
            <coordinates>-111.68398999999999,33.393230000000003
-111.58019,33.393160000000002
-111.58078999999999,33.404260000000001
-111.58089,33.404260000000001
-111.58078999999999,33.407719999999998
-111.59789000000001,33.407760000000003
-111.59799,33.411209999999997
-111.58909,33.411250000000003
-111.58929000000001,33.414940000000001
...
            </coordinates>
          </LinearRing>
        </outerBoundaryIs>
      </Polygon>
    </Placemark>
    <!-- additional Placemarks -->
  </Document>
</kml>

它似乎适用于第一个区域和该区域中的第一个州(此示例是 US-AZ 亚利桑那州),但忽略所有其他区域和州。所以大约 1000 个多边形被渲染,但其他 8000 个多边形都没有被渲染。

在 Google 地球中加载 KML 时,每个状态 KML 文件都可以单独正常工作。

我遵循了用于 NetworkLink 和 Regions 的 Google Keyhole 示例,但我所做的任何其他区域和网络链接将呈现似乎并不重要。

有什么想法或更好的方法来使用我可能遗漏的谷歌地图显示 8000 个多边形(并且不需要很长时间才能在地图上显示)?

【问题讨论】:

  • KmlLayer 有restrictions/limitations。如果您需要一次显示所有数据,您可能需要制作自己的图块服务器..
  • 除 10 个网络链接外,所有要求均已满足。这是每个 kml 文件 10 个网络链接还是通过所有链接的 kml 文件有 10 个?如果限制是将“文档范围”作为 进行讨论,那么每个 kml 文件(在最低层)只有 200 到 800 个多边形/特征。
  • 也许这是最后一个限制:KML 层数
  • Google 地图最多会跟随 10 个网络链接,不管它们都是在顶级文件中,还是在子文件中级联。

标签: google-maps google-maps-api-3 kml opengis


【解决方案1】:

感谢@Christiann Adams 和@geocodezip 让我直截了当。

对于遇到此问题的其他任何人,您在所有文件中总共只能有 10 个网络链接(如上面的 cmets 中所述)。

我的解决方法是拥有多个 KML 层,每个文件不超过 10 个网络链接。这似乎对我有用。

希望对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2012-12-05
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多