我在这里创建了一个地图:http://userpages.flemingc.on.ca/~eluli/collab.html
我使用shp2kml将我的shapefile转换成KML层。我想为最后五个KML图层添加静态图例(另存为PNG),以便当用户检查特定图层时,静态图例会显示在地图上。我已经尝试添加屏幕覆盖,但我仍然无法看到图例。下面显示了我添加到导出KML文件中的内容。我在样式化代码之后编写了ScreenOverlay代码。我引用了以下链接,但它们没有用:https://developers.google.com/kml/documentation/kml_tut#screen_overlays https://developers.google.com/kml/documentation/kmlreference#screenoverlay
<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.0"><Document><name>Companies.shp</name><Style id="shp2kml1"><IconStyle>
<color>BF004A4A</color><scale>1.0</scale><Icon><href>https://drive.google.com/uc?id=0B79b02nBK5vkVnRLalEtQk5LVkE</href></Icon></IconStyle><LabelStyle><scale>0</scale></LabelStyle><BalloonStyle ><text>$[description]</text><color>FFFFFFFF</color></BalloonStyle><LineStyle>
<color>FFFF0000</color><width>1</width></LineStyle><PolyStyle><color>FFFFCA95</color></PolyStyle></Style><Style id="shp2kml2"><IconStyle>
<color>BF006A6A</color><scale>1.0</scale><Icon><href>https://drive.google.com/uc?id=0B79b02nBK5vkTG5LWjF4anBkeW8</href></Icon></IconStyle><LabelStyle><scale>0</scale></LabelStyle><BalloonStyle ><text>$[description]</text><color>FFFFFFFF</color></BalloonStyle><LineStyle>
<color>FFFF0000</color><width>1</width></LineStyle><PolyStyle>
<color>FFFFCA95</color></PolyStyle></Style><Style id="shp2kml3"><IconStyle>
<color>BF007F7F</color><scale>1.0</scale><Icon><href>https://drive.google.com/uc?id=0B79b02nBK5vkaG9EM1VfcVdEM28</href></Icon></IconStyle><LabelStyle><scale>0</scale></LabelStyle><BalloonStyle ><text>$[description]</text>
<color>FFFFFFFF</color></BalloonStyle><LineStyle>
<color>FFFF0000</color><width>1</width></LineStyle><PolyStyle>
<color>FFFFCA95</color></PolyStyle></Style><Style id="shp2kml4"><IconStyle>
<color>BF009595</color><scale>1.0</scale><Icon><href>https://drive.google.com/uc?id=0B79b02nBK5vkSWpNejFoZU9sdnM</href></Icon></IconStyle><LabelStyle><scale>0</scale></LabelStyle><BalloonStyle ><text>$[description]</text>
<color>FFFFFFFF</color></BalloonStyle><LineStyle>
<color>FFFF0000</color><width>1</width></LineStyle><PolyStyle>
<color>FFFFCA95</color></PolyStyle></Style><Style id="shp2kml5"><IconStyle>
<color>BF00ABAB</color><scale>1.0</scale><Icon><href>https://drive.google.com/uc?id=0B79b02nBK5vkZWFTa2ZXOHMzSmc</href></Icon></IconStyle><LabelStyle><scale>0</scale></LabelStyle><BalloonStyle ><text>$[description]</text>
<color>FFFFFFFF</color></BalloonStyle><LineStyle><color>FFFF0000</color><width>1</width></LineStyle><PolyStyle>
<color>FFFFCA95</color></PolyStyle></Style><Style id="shp2kml6"><IconStyle>
<color>BF00C0C0</color><scale>1.0</scale><Icon><href>https://drive.google.com/uc?id=0B79b02nBK5vkRW83UHFLbElVVk0</href></Icon></IconStyle><LabelStyle><scale>0</scale></LabelStyle><BalloonStyle ><text>$[description]</text>
<color>FFFFFFFF</color></BalloonStyle><LineStyle>
<color>FFFF0000</color><width>1</width></LineStyle><PolyStyle>
<color>FFFFCA95</color></PolyStyle></Style><Style id="shp2kml7"><IconStyle>
<color>BF00E1E1</color><scale>1.0</scale><Icon>
<href>https://drive.google.com/uc?id=0B79b02nBK5vkd2FoSkM4X2hSRDA</href></Icon></IconStyle><LabelStyle><scale>0</scale></LabelStyle><BalloonStyle ><text>$[description]</text>
<color>FFFFFFFF</color></BalloonStyle><LineStyle>
<color>FFFF0000</color><width>1</width></LineStyle><PolyStyle>
<color>FFFFCA95</color></PolyStyle></Style><Folder><name>Features</name><open>0</open><visibility>0</visibility><Placemark><name>0</name><Snippet></Snippet>
<!-- code for Screen Overlay -->
<ScreenOverlay>
<name>Exports</name>
<Icon> <href>https://drive.google.com/open?id=0BxwnqYr_qb1DbzdQaFktbzF3WGs</href>
</Icon>
<overlayXY x="0" y="0" xunits="fraction" yunits="fraction"/>
<screenXY x="25" y="95" xunits="pixels" yunits="pixels"/>
<rotationXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>
<size x="0" y="0" xunits="pixels" yunits="pixels"/>
</ScreenOverlay>
<description>............ </description>...... <description>............
</description>...... <description>............ </description></Folder></Document></kml>
发布于 2015-06-25 12:23:46
主要问题是图像的URL指向HTML跳转页面,而不是图像本身。
https://drive.google.com/open?id=0BxwnqYr_qb1DbzdQaFktbzF3WGs
在启用调试的情况下获取此URL会显示内容类型为text/html,而不是image/png。Google Drive、Dropbox等提供指向内联和/或链接到媒体的html页面的URL。
从这个URL中,您需要获取图像本身的URL。在此URL中,用鼠标右键单击图像并选择“复制图像URL”或“在新选项卡中打开图像”(取决于您使用的web浏览器)。
将目标屏幕覆盖图像更改为该URL。
此外,您的KML的结构无效。
例如,<ScreenOverlay>
元素必须在<Document> ... </Document>
中。此外,元素外部似乎有一个<description>
标记,这是无效的。
您的KML的结构应该如下所示:
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>...</Placemark>
<ScreenOverlay>..</ScreenOverlay>
</Document>
</kml>
您可以使用KML validator验证您的KML。同样,您可以轻松地验证您的KML是格式良好的XML文件(例如,匹配标记等)。使用.xml文件扩展名对其进行重命名,然后将该文件拖放到web浏览器上。
https://stackoverflow.com/questions/31036414
复制相似问题