javascript 在Here Maps中使用对象而不是url加载GeoJson

qhhrdooz  于 2023-01-24  发布在  Java
关注(0)|答案(3)|浏览(104)

我尝试在Here Maps中使用GeoJson。我是Here Maps API的新手,所以我按照官方示例加载GeoJson,如果我从url加载GeoJson,一切都很好。现在我想从JS对象加载GeoJson,但geojson.Reader方法似乎只允许读取url。是否可以加载对象?

var myGeoJsonObject = ...

function showGeoJSONData (map) {

var reader = new H.data.geojson.Reader(myGeoJsonObject), {

    style: function (mapObject) {

      if (mapObject instanceof H.map.Polygon) {
        mapObject.setStyle({
          fillColor: 'rgba(255, 0, 0, 0.5)',
          strokeColor: 'rgba(0, 0, 255, 0.2)',
          lineWidth: 3
        });
      }
    }
  });

  reader.parse();

  map.addLayer(reader.getLayer());
}
iszxjhcz

iszxjhcz1#

the docs来看,似乎有两种选择:
1.将文件路径传递给构造函数:

const reader = new H.data.geojson.Reader('/path/to/geojson/file.json');
reader.parse();

1.或者,可以创建一个新示例,不向构造函数传递任何内容,然后调用示例的.parse方法并传递GeoJSON对象,还可以向构造函数传递选项对象:

const reader = new H.data.geojson.Reader(null, {
    style: function (mapObject) {
      if (mapObject instanceof H.map.Polygon) {
        mapObject.setStyle({
          fillColor: 'rgba(255, 0, 0, 0.5)',
          strokeColor: 'rgba(0, 0, 255, 0.2)',
          lineWidth: 3
        });
      }
    }
  });

// pass the data here
reader.parse(myGeoJsonObject);
hjqgdpho

hjqgdpho2#

这是我的工作示例:

_current_geojson_layer = new H.data.geojson.Reader();
                // pass the data here
                _current_geojson_layer.parseData(_geojson_object);
                // Add layer which shows GeoJSON data on the map
                map.addLayer(_current_geojson_layer.getLayer());

这里是API文档
https://developer.here.com/documentation/maps/3.1.22.0/api_reference/H.data.geojson.Reader.html#parseData

2hh7jdfx

2hh7jdfx3#

在这种情况下,需要使用parseData,H.data.geojson.Reader.parseData:https://developer.here.com/documentation/maps/3.1.22.0/api_reference/H.data.geojson.Reader.html#parseData

const reader = new H.data.geojson.Reader(null, {
    style: function (mapObject) {
      if (mapObject instanceof H.map.Polygon) {
        mapObject.setStyle({
          fillColor: 'rgba(255, 0, 0, 0.5)',
          strokeColor: 'rgba(0, 0, 255, 0.2)',
          lineWidth: 3
        });
      }
    }
 });
// pass the data here
reader.parseData(myGeoJsonObject);

相关问题