0

VueJs アプリケーション内で JavaScript API を使用して、Here Map で英国の郵便番号地区の geojson 表現を解析して表示しようとしています。

コードは比較的単純です。districtGeojson は JSON ドキュメントです。次の関数は、マップが初期化されて表示された後に呼び出されます。

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 を返します。

私が見ているのは、地図が一瞬ちらつき、それから普通の地図が表示されることだけです。何が問題なのかについて API からフィードバックを得る方法はありますか?

必要に応じて、JSON ドキュメントを共有できますが、サイズが大きい (5Mb) ため、最初にこのコードに明らかに問題があるかどうかを確認したかったのです。

4

1 に答える 1

0

そのため、次のドキュメントにエラーがある可能性があります: 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());

私にとってうまくいったのは、parse()ではなくparseData()を呼び出して、ソースデータを渡すことでした。できます:

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());

コンストラクターでパスとして渡されたデータをリーダーに解析させることができないため、コンストラクターでファイルパスが必要な理由について疑問が生じます。

于 2020-06-11T13:46:12.307 に答える