【发布时间】: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