var mapObj = new AMap.Map('container', {
resizeEnable: true,
zoom: 5,
zooms:[4,18],
center: [106.485352, 34.603692]
});
//=======================================================
var createMarker = function(data,h) {
var p = document.createElement('p');//创建一个p
p.className = 'circle';//添加className
var r = Math.floor(data.count / 1024);
p.style.backgroundColor = h?'yellow':'blue';//区别颜色
p.innerHTML = data.count || 0;//标记框里面的内容是数据里面的count/0
var marker = new AMap.Marker({//创建一个标记对象
content: p,
title:data.name,
position: data.center.split(','),
offset: new AMap.Pixel(-50, 5),
zIndex: data.count//图层的层级
});
marker.subMarkers = [];//()
if(data.name==='北京市'||data.name==='河南省'){
marker.setLabel({content:'←请点击',offset:new AMap.Pixel(45,0)})//设置点标记文本标签内容
mapObj.setCenter(marker.getPosition());
}
if(!h){//()
marker.setMap(mapObj);//添加相关标记
}
//
if(data.subDistricts&&data.subDistricts.length){//数据里面存在sub属性执行
for(var i = 0 ; i
我想知道 marker.subMarkers.push(createMarker(data.subDistricts[i],true));这句话什么意思,它createMarker()为什么会在里面直接调用本身,然后这样做有什么目的,实习生希望能指点下,谢谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这样写是考虑到data.subDistricts[]中可能会出现嵌套的情况,大概意思是河南省或北京市下的还有一些标记
你可以把这个data输出到控制台看一下具体数据