滴滴热力图-JS版 基于高德地图

// 地图开始
//创建地图
var lnglat = [116.4717292786, 39.9997419717];
var map = new AMap.Map'map_container', {
resizeEnable: true,
center: lnglat,
zoom: 3
});
var latDistance = 1.0 / 111322 * Math.cos45*Math.PI / 180);//每一米代表多少度
var lonDistance = 1.0 / 111322;
// var longitude = 73.450605; // 116.4717292786;
// var latitude = 53.600613; // 39.9997419717;
var radius = 1000;//1000米
var left_lng = 0, up_lat=0, right_lng=0, down_lat=0;


var path = [];
$.ajax{ // 接口获取边界值集合
type: "post",
url: 'border',
data: $"form").serialize), //参数值
dataType: 'json',
success: function resp) {
if resp.code != 0) {
layer.msgresp.msg);
} else {
//限定边界值
left_lng = resp.left_lng; // 左边经度
up_lat = resp.up_lat; // 下边纬度
right_lng = resp.right_lng; // 右边经度
down_lat = resp.down_lat; // 下边经度
// 根据三角函数 边界值 计算分段长度
var dis_long = Math.ceilAMap.GeometryUtil.distance[left_lng, up_lat], [right_lng, down_lat]));
var count_lenth = Math.ceildis_long/2*radius));
// console.log[left_lng, up_lat], [right_lng, down_lat], dis_long, 2*radius, count_lenth);
// 划区域
$.eachresp.data, functioni_list, result_list){
// 画六边形
draw_other_lng_latleft_lng, up_lat, count_lenth, result_list);
var path = [];
$.eachresult_list, function i_r, result) {
//
var latLng = new AMap.LngLatresult[0],result[1]);
path.pushlatLng);
});
// 画边界
draw_listpath, '','#1c22ff');
});
}
},
});

function draw_other_lng_latlongitude, latitude, count_lenth, result_list) {
longitude = Numberlongitude);
latitude = Numberlatitude);
// for var i_total=0; i_total<count_lenth; i_total+=10) {
sleep300).then)=> { // 睡眠1s
for var i = 0; i <= count_lenth; i++) {
var mLongitude = longitude + i * 1.5 * radius * lonDistance;
for j = 0; j <= count_lenth+6; j++) {
var mLatitude = latitude - 2 * j * radius * Math.sin60 * Math.PI / 180) * latDistance;
if i % 2 != 0) {
mLatitude += radius * Math.sin60 * Math.PI / 180) * latDistance;
}
console.log1);
var inRing = AMap.GeometryUtil.isPointInRing[mLongitude,mLatitude], result_list); // 是否在多边形内

ifinRing == true) {
drawingmLongitude, mLatitude, result_list);
}
}
}
});
// }
}

function drawinglongitude, latitude, result_list) {
var height = radius * Math.sin60*Math.PI / 180) * latDistance;
var lng1 = longitude - radius / 2 * lonDistance, lat1 = latitude + height;
var lng2 = longitude + radius / 2 * lonDistance, lat2 = latitude + height;
var lng3 = longitude + radius * lonDistance, lat3 = latitude;
var lng4 = longitude + radius / 2 * lonDistance, lat4 = latitude - height;
var lng5 = longitude - radius / 2 * lonDistance, lat5 = latitude - height;
var lng6 = longitude - radius * lonDistance, lat6 = latitude;

var inRing1 = AMap.GeometryUtil.isPointInRing[lng1,lat1], result_list); // 是否在多边形内
var inRing2 = AMap.GeometryUtil.isPointInRing[lng2,lat2], result_list); // 是否在多边形内
var inRing3 = AMap.GeometryUtil.isPointInRing[lng3,lat3], result_list); // 是否在多边形内
var inRing4 = AMap.GeometryUtil.isPointInRing[lng4,lat4], result_list); // 是否在多边形内
var inRing5 = AMap.GeometryUtil.isPointInRing[lng5,lat5], result_list); // 是否在多边形内
var inRing6 = AMap.GeometryUtil.isPointInRing[lng6,lat6], result_list); // 是否在多边形内*/

// ifinRing1 == true || inRing2 == true || inRing3 == true || inRing4 == true || inRing5 == true || inRing6 == true) {
var latLng1 = new AMap.LngLatlng1, lat1);
var latLng2 = new AMap.LngLatlng2, lat2);
var latLng3 = new AMap.LngLatlng3, lat3);
var latLng4 = new AMap.LngLatlng4, lat4);
var latLng5 = new AMap.LngLatlng5, lat5);
var latLng6 = new AMap.LngLatlng6, lat6);
var path = [
latLng1,
latLng2,
latLng3,
latLng4,
latLng5,
latLng6
];
// 添加一个多边形
draw_listpath);
// }
}

// 分段画图 添加一个多边形
function draw_listpath, fillColor='#fff', strokeColor='black') {
var polygon = new AMap.Polygon{
path: path,
fillColor: fillColor, // 多边形填充颜色
borderWeight: 1, // 线条宽度,默认为 1
strokeColor: strokeColor, // 线条颜色
});

map.addpolygon);
}

// 释放内存 休息
function sleepms) {
return new Promiseresolve =>
setTimeoutresolve, ms)
)
}
// 地图结束

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注