2017-09-11 9 views
0

私はJavascriptアプリケーションでgoogleマップを使っていくつかのkmlファイルを扱う際の問題で実際に苦労しています。データベースからKMLを読む

私はURLまたはローカルファイルシステムからKMLファイルを読み込み、その内容をデータベースにStringとして格納しているメソッドを作成しました。今私はボタンをクリックして私のデータベースに格納されているレイヤーをアクティブにしたいと思います。ここまではすべてが大丈夫です。

すべての例で、KMLLayerのurl属性を使用するのは、URLをKMLファイルに渡すことだけです。ここのような

var ctaLayer = new google.maps.KmlLayer({ 
    url: 'http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml', 
    map: map 
    }); 

しかし、私のファイルは、私のDBに文字列として格納されているので、私は、ファイルへのURL、コンテンツのみを持っていない

。 XML-Stringをコンテンツとして渡すしか方法がありません。 誰かがここで助けることができますか?

答えて

0

いつか誰かが同様の問題で苦労するかもしれません。解決策は少し難解でした。私は文字列の内容で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); 
}) 
関連する問題