我实际上在我的Javascript应用程序中使用谷歌地图处理一些kml文件时遇到了问题。
我写了一个方法,我从URL或本地文件系统读取KML文件,并将内容作为字符串存储在数据库中。现在我想通过单击按钮激活存储在我的数据库中的图层。这里的一切都很好。
在每个例子中,我都可以通过将url传递给KML文件来找到它们只使用KmlLayer的url-attribute。
喜欢这里:
var ctaLayer = new google.maps.KmlLayer({
url: 'http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml',
map: map
});
但是由于我的文件在我的数据库中存储为字符串,所以我没有文件的网址,只有内容。我找不到只将XML-String作为内容传递的方法。 有人可以帮忙吗?
答案 0 :(得分:0)
也许有一天有人会遇到类似的问题。解决方案有点棘手。我需要创建一个包含我的String内容的Blob。使用blob,我创建了一个文件并将其打包到URL中。您可以将此URL传递给kml解析器。我使用了https://github.com/geocodezip/geoxml3。
vm.activeLayers.forEach(function(value, key) {
var file = new Blob([value], {type: 'kml'})
var url = URL.createObjectURL(file);
var myParser = new geoXML3.parser({
map : map
});
myParser.parse(url);
})