在将文档与我的用例相协调时遇到了一些麻烦。我在尝试使用 d3 让 openstreet 地图进行反应时遇到了一点困难,并且一直在玩 react-map-gl ......很棒的库,非常适合拨号!这个库建立在 d3 和 openstreetmaps 之上,并使用了很多d3 插件......这是我试图复制的示例:
https://github.com/uber/react-map-gl/blob/5.0-release/examples/heatmap/src/app.js
在此示例中,坐标所在的数据位于 geoJson 文件中,并以如下所示的方法访问(从上面的链接复制并粘贴...在此代码中,他们使用 d3-request 插件来通过 geoJson 文件获取和解析,该文件包含有关地震等的其他数据):
_handleMapLoaded = event => {
const map = this._getMap();
requestJson(
'https://docs.mapbox.com/mapbox-gl-js/assets/earthquakes.geojson',
(error, response) => {
if (!error) {
// Note: In a real application you would do a validation of JSON data before doing anything with it,
// but for demonstration purposes we ingore this part here and just trying to select needed data...
const features = response.features;
const endTime = features[0].properties.time;
const startTime = features[features.length - 1].properties.time;
this.setState({
earthquakes: response,
endTime,
startTime,
selectedTime: endTime
});
map.addSource(HEATMAP_SOURCE_ID, {type: 'geojson', data: response});
map.addLayer(this._mkHeatmapLayer('heatmap-layer', HEATMAP_SOURCE_ID));
}
}
);
};
如果您使用的是 GeoJson,那就太好了,我已经做了很多工作来将 d3 指向美国各州、县或邮政编码的对象……但是我想做的事情要简单得多!我有一个要获取的数据数组,并作为道具传递给这个热图组件,它看起来像这样:
[
{name: locationOne, latitude: 1.12345, longitude: -3.4567},
{name: locationTwo, latitude: 1.2345, longitude: -5.678},
...etc
]
所以问题是,如果我不使用 geoJson,我如何告诉热图使用什么坐标?任何帮助表示赞赏!