Javascript 使用传单-Heat.js显示地图
我目前正在开发一个web应用程序,尝试使用名为传单.heat的库显示热图。它与传单Javascript库一起工作,以创建一个看起来非常好的覆盖热图。我觉得我已经差不多做到了,但在数组格式方面遇到了最后一点问题,无法找出问题所在。让我分享一下我现在拥有的代码Javascript 使用传单-Heat.js显示地图,javascript,arrays,google-maps,leaflet,Javascript,Arrays,Google Maps,Leaflet,我目前正在开发一个web应用程序,尝试使用名为传单.heat的库显示热图。它与传单Javascript库一起工作,以创建一个看起来非常好的覆盖热图。我觉得我已经差不多做到了,但在数组格式方面遇到了最后一点问题,无法找出问题所在。让我分享一下我现在拥有的代码 var mymap; var marker = []; var heatMapArr = []; window.onload = function() { alert("in initial
var mymap;
var marker = [];
var heatMapArr = [];
window.onload = function() {
alert("in initial func");
uponPageLoadDefault();
};
function uponPageLoadDefault()
{
//initial default page load
var branches = new L.LayerGroup();
var items = JSON.parse('${branches}');
var j = 0;
for(var i = 0; i < items.length; i++)
{
var LamMarker = new L.marker([items[i].lat, items[i].lon]);
//GOT RID OF FUNCTION CALL.
var heatMapPoint = {
lat: items[i].lat,
lon: items[i].lon,
intensity: items[i].tranCount
};
heatMapArr.push(heatMapPoint);
LamMarker.bindPopup("<b>" + items[i].branchName + "</b><br>" + items[i].branchAdd + "</br><br>" + items[i].branchCity + "</br><br>" + items[i].branchSt + "</br><br>" + items[i].branchZip + "</br><br>TranCount: " + items[i].tranCount).addTo(branches);
marker.push(LamMarker);
}
mbAttr = 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
mbUrl = 'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoidGFzdHlicm93bmllcyIsImEiOiJjaXgzZWxkaHowMWZhMnlvd2wzNHllaGwxIn0.0RSZEhtR0OBLMbwjqFfBkg';
var outdoors = L.tileLayer(mbUrl, {id: 'mapbox.outdoors', attribution: mbAttr});
var heatmap = L.heatLayer(heatMapArr, {radius: 6, blur: 8,maxZoom: 8});
var map = L.map('map', {
center: [39.73, -104.99],
zoom: 10,
layers: [outdoors, branches, heatmap]
});
var baseLayers = {
"Outdoors": outdoors
};
var overlays = {
"Branches": branches,
"HeatMap": heatmap
};
L.control.layers(baseLayers, overlays).addTo(map);
var-mymap;
var标记=[];
var heatMapArr=[];
window.onload=函数(){
警报(“初始功能”);
uponPageLoadDefault();
};
函数uponPageLoadDefault()
{
//初始默认页面加载
var branchs=新的L.LayerGroup();
var items=JSON.parse('${branchs}');
var j=0;
对于(变量i=0;i“+items[i].branchad+”
“+items[i].branchCity+”
“+items[i].branchSt+”
TranCount:“+items[i].TranCount.addTo(分支机构);
标记器。推(标记器);
}
mbAttr='Map data©;contributors,'+
', ' +
“图像”,
姆布尔https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyj1ijoidgfzdhlicm93bmllcyismeioijjaxgzwxkahowmwzhmnlvd2wznhllagwxin0.0rszehtr0oblmbwjqfbkg';
var outdoors=L.tillelayer(mbUrl,{id:'mapbox.outdoors',属性:mbAttr});
var heatmap=L.heatLayer(heatMapArr,{radius:6,blur:8,maxZoom:8});
var map=L.map('map'{
中间:[39.73,-104.99],
缩放:10,
层:[室外、树枝、热图]
});
var baseLayers={
“户外”:户外
};
变量覆盖={
“分支机构”:分支机构,
“热图”:热图
};
L.控制层(基本层、覆盖层)。添加到(地图);
因此,基本上我尝试使用热图显示作为用户可以选择的可能覆盖。单张热图库教程位于,它解释了为了使库工作需要做什么
无论如何,我有一个带有纬度、经度和强度数量的项目列表,所以我尝试使用它,它被称为项目。我迭代了一遍,将选择信息推到我的热图数组中。此时,除了添加覆盖图和创建地图外,我几乎已经准备好了。当我运行程序时,地图只显示overlay图标不存在,因此存在问题
在网站教程中,他们使用一个单独的Javascript文件,该文件包含一个对象数组来创建他们的热图。我用我的程序尝试了这个方法,然后一切正常,这很快让我相信我的对象数组有问题,可能是一些小的格式问题……。我正在使用另一个函数创建一个带有t的对象他的数据,我有,所以它将在相同的格式作为网站的例子
我尝试使用alert和其他语句,并将我的数组与他们的数组进行比较,但它没有产生任何有用的结果,因此我想将我的问题发布到Stack上,以从其他人那里获得一些关于可能出现错误的反馈。我想这是一个非常小的问题,我可能看不到
非常感谢您的反馈,如果有任何问题,一定要告诉我
谢谢!看起来我可能刚刚回答了我自己的问题。我没有调用函数返回对象项,而是用简捷的方法。我编辑了代码,程序现在正在处理热图,就像我想要的一样,棒极了!还删除了创建对象的函数,因为它现在不必要了。