diff --git a/src/geoJSONSource.js b/src/geoJSONSource.js index 5f9c26e243e7159daf6b94801263bfeac2c96ba1..4c596c22d4db4eef501bd356d8931db086138a20 100644 --- a/src/geoJSONSource.js +++ b/src/geoJSONSource.js @@ -86,7 +86,7 @@ class GeoJSONSource extends Champlain.TileSource { this.next_source.fill_tile(tile); }); - Mainloop.idle_add(() => this._renderTile(tile)); + Mainloop.idle_add(() => this._renderTile(tile), tile); } _validate([lon, lat]) { diff --git a/src/gpxShapeLayer.js b/src/gpxShapeLayer.js index 6154b82512fb493dcabe698fa185a03fa47cf726..e3a23b99f9e8cf63d0136f6e5da99814fefda91d 100644 --- a/src/gpxShapeLayer.js +++ b/src/gpxShapeLayer.js @@ -21,6 +21,7 @@ const GObject = imports.gi.GObject; const GeoJSONSource = imports.geoJSONSource; const ShapeLayer = imports.shapeLayer; +const Utils = imports.utils; const Togeojson = imports.togeojson.togeojson; const Domparser = imports.xmldom.domparser; @@ -37,7 +38,7 @@ class GpxShapeLayer extends ShapeLayer.ShapeLayer { } _parseContent() { - let s = this._fileContents.toString(); + let s = Utils.getBufferText(this._fileContents); let parser = new Domparser.DOMParser(); let json = Togeojson.toGeoJSON.gpx(parser.parseFromString(s)); this._mapSource.parse(json); diff --git a/src/kmlShapeLayer.js b/src/kmlShapeLayer.js index ea13a7f4ccf9bb3ff93d4314be1fdbe6ce13c495..c7ef0a1ff1fe9e3b747a4a702f9ee1ae66c1f6d4 100644 --- a/src/kmlShapeLayer.js +++ b/src/kmlShapeLayer.js @@ -21,6 +21,7 @@ const GObject = imports.gi.GObject; const GeoJSONSource = imports.geoJSONSource; const ShapeLayer = imports.shapeLayer; +const Utils = imports.utils; const Togeojson = imports.togeojson.togeojson; const Domparser = imports.xmldom.domparser; @@ -36,7 +37,7 @@ class KmlShapeLayer extends ShapeLayer.ShapeLayer { } _parseContent() { - let s = this._fileContents.toString(); + let s = Utils.getBufferText(this._fileContents); let parser = new Domparser.DOMParser(); let json = Togeojson.toGeoJSON.kml(parser.parseFromString(s)); this._mapSource.parse(json);