首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法将静态图例添加到KML文件中

无法将静态图例添加到KML文件中
EN

Stack Overflow用户
提问于 2015-06-25 04:30:05
回答 1查看 332关注 0票数 1

我在这里创建了一个地图: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

代码语言:javascript
代码运行次数:0
运行
复制
<?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>
EN

回答 1

Stack Overflow用户

发布于 2015-06-25 20: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的结构应该如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
<kml xmlns="http://www.opengis.net/kml/2.2">
 <Document>
  <Placemark>...</Placemark>
  <ScreenOverlay>..</ScreenOverlay>
 </Document>
</kml>

您可以使用KML validator验证您的KML。同样,您可以轻松地验证您的KML是格式良好的XML文件(例如,匹配标记等)。使用.xml文件扩展名对其进行重命名,然后将该文件拖放到web浏览器上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31036414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档