KML与Google动态地图:<ExtendedData>中NTS_Text无法加载至弹窗
解决KML弹窗无法显示ExtendedData属性值的问题
嘿,我看你遇到的问题是Google Maps加载KML后,弹窗里没法显示NTS_Text的内容对吧?问题其实出在BalloonStyle里的变量引用格式上,你当前用的写法不符合Google Maps KML解析器的要求,所以读不到对应的值。
具体调整方法:
- 把
<BalloonStyle>里的$[Adresy_web_kml_ID/NTS_Text]改成直接用$[NTS_Text]就行,不需要加Schema的ID前缀 - 你已经确保了
<SimpleField>和<SimpleData>的name属性完全匹配,这部分没问题,不用改
修改后的样式代码:
<Style id="globema_style"> <IconStyle> <scale>1</scale> <Icon> <href>https://sites.google.com/site/karolinakmlhosting/kml-files/kolecko_7px.png</href> </Icon> </IconStyle> <BalloonStyle> <text> <![CDATA[Informace o výstavbě: $[NTS_Text] ]]> </text> </BalloonStyle> </Style>
为什么原来的写法不生效?
Google Maps的KML实现里,当你通过<SchemaData>关联了Schema之后,引用字段只需要直接用<SimpleField>的name值就够了。只有当同一个KML里有多个同名字段(分属不同Schema)时,才需要用SchemaID/FieldName的格式来区分,你的场景里不存在这种情况,所以直接写字段名就可以正常读取。
另外可以额外检查这两点确保万无一失:
- 确认整个KML文件的XML格式是合法的,没有标签遗漏、语法错误
- 确认每个
<Placemark>的<ExtendedData>里都正确包含了<SimpleData name="NTS_Text">条目(你的示例里这部分是对的)
改完之后,点击地图上的标记,弹窗应该就能正常显示NTS_Text的内容啦。
内容的提问来源于stack exchange,提问作者Karolína Fenclová
相关产品推荐
相关产品推荐

