来自geoj​​son的热图在传单中指出

时间:2017-05-02 13:12:09

标签: leaflet geojson heatmap

我正在尝试使用leaflet的热图插件从点的要素集合中创建一个简单的热图。从ajax调用成功获取json数据后,我创建一个空的coords数组并从每个功能推送坐标。

但是,此方法不起作用,geojson2heat功能也不起作用。控制台中没有错误。我做错了什么,有没有人知道解决方法?

var map = L.map('map').setView([50.0647, 19.9450], 12);

var tiles = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
}).addTo(map);
var geojsonLayer = new L.GeoJSON.AJAX("newmap.geojson");

coords = [];

function onEachFeature(feature, layer) {
            coords.push(feature.geometry.coordinates);

};

L.GeoJSON(geojsonLayer, {
    onEachFeature: onEachFeature
})

var heat = L.heatLayer(coords).addTo(map);

geojson的结构是标准的:

{
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{ "type": "Feature", "properties": { "st_x": 19.952030181884801, "st_y": 50.055513141929701 }, "geometry": { "type": "Point", "coordinates": [ 19.952030181884801, 50.055513141929701 ] } },
{ "type": "Feature", "properties": { "st_x": 18.672015, "st_y": 50.287181666666697 }, "geometry": { "type": "Point", "coordinates": [ 18.672015, 50.287181666666697 ] } },

1 个答案:

答案 0 :(得分:0)

我主要和你一样,但使用基于Leaflet的Mapbox。

我遇到的问题是GeoJSON的纬度和经度坐标是相反的。控制台上没有任何错误 - 点只是没有在地图上显示。所以,你需要:

"coordinates": [ longitude, latitude ] 

希望是这个问题。