我正在尝试使用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: '© <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 ] } },
答案 0 :(得分:0)
我主要和你一样,但使用基于Leaflet的Mapbox。
我遇到的问题是GeoJSON的纬度和经度坐标是相反的。控制台上没有任何错误 - 点只是没有在地图上显示。所以,你需要:
"coordinates": [ longitude, latitude ]
希望是这个问题。