簡體   English   中英

為什么大 eojson 沒有顯示在 Here Map 上?

[英]Why does large eojson not get displayed on Here Map?

我正在嘗試在 VueJs 應用程序中使用 JavaScript API 在 Here Map 上解析和顯示英國郵政編碼區的 geojson 表示。

代碼比較簡單——districtGeojson就是JSON這個文件。 map初始化顯示后調用如下function:

processGeojson() {
  const reader = new H.data.geojson.Reader(districtGeojson, {
    disableLegacyMode: true
  });

  reader.parse();
  const layer = reader.getLayer();

  this.shapes = layer;
  console.log(layer.isValid(7));
  try {
    this.map.addLayer(layer);
  } catch (err) {
    console.log('err adding layer', err);
  }
}

如您所見,其中有一個 console.log() 用於在默認縮放級別對圖層的有效性進行某種檢查,並返回 true。

我只看到 map 短暫閃爍,然后顯示普通的 map。 有沒有辦法從 API 那里得到一些關於出了什么問題的反饋,它似乎只是默默地失敗了——addLayer 沒有拋出異常?

如有必要,我可以共享 JSON 文檔,但由於它很大 (5Mb),我想先看看這段代碼是否有明顯的錯誤。

因此,此處的文檔中似乎存在錯誤: https://developer.here.com/documentation/maps/3.1.17.0/api_reference/H.data.geojson.Reader.html#getLayer

其中指出:

var reader = new H.data.geojson.Reader('/path/to/geojson/file.json');
reader.parse();
// Assumption: map already exists
map.addLayer(reader.getLayer());

而對我有用的是調用 parseData() 而不是 parse() 來傳遞源數據。 我可以:

var reader = new H.data.geojson.Reader('');
reader.parseData(districtGeojson);
// Assumption: map already exists
map.addLayer(reader.getLayer());

但不是

var reader = new H.data.geojson.Reader('./Districts.json');
reader.parse();
// Assumption: map already exists
map.addLayer(reader.getLayer());

這就引出了為什么構造函數中需要文件路徑的問題,因為我無法讓讀者解析在構造函數中作為路徑傳遞的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM