html 地址 点击召唤高德,高德地图api 点聚合+海量点+点击事件(根据地区或坐标进行定位)...
javascript
区划聚合+海量点展现
html,
body,
#container {
width: 100%;
height: 100%;
margin: 0px;
}
#loadingTip {
position: absolute;
z-index: 9999;
top: 0;
left: 0;
padding: 3px 10px;
background: red;
color: #fff;
font-size: 14px;
}
#right {
position: absolute;
z-index: 9999;
top: 0;
right: 0;
padding: 3px 10px;
background: red;
color: #fff;
font-size: 14px;
}
html
行政编码:
坐标:
点击
//建立地图
var map = new AMap.Map('container', {
resizeEnable: true,
zoom: 4
});java
function a() {
var lnglat;
var adcode;
adcode = document.getElementById("adcode").value;
lnglat = document.getElementById("lnglat").value;
console.log("lnglat:"+lnglat)
if(!lnglat == '') {
console.log("1:"+adcode)
var point = lnglat.split(",");
distCluster.zoomToShowSubFeatures(adcode, [point[0], point[1]])
addMark(point[0], point[1])
} else {
console.log("2:"+adcode)
distCluster.zoomToShowSubFeatures(adcode)
}web
function refresh() {
var zoom = 13;
console.log("zoom:" + zoom)
//获取 pointStyle
var pointStyle = pointSimplifierIns.getRenderOptions().pointStyle;api
//根据当前zoom调整点的尺寸
pointStyle.width = pointStyle.height = 2 * Math.pow(1.2, map.getZoom() - 3);
}app
}ui
function addMark(lng, lat) {
// 建立一个自定义内容的 infowindow 实例
var infoWindowContent = "坐标:" + lng + "," + lat;
var infoWindow = new AMap.InfoWindow({
position: [lng, lat],
offset: new AMap.Pixel(0, 0),
content: infoWindowContent
});
infoWindow.open(map);
}编码
function initPage(DistrictCluster, PointSimplifier, $) {
var pointSimplifierIns = new PointSimplifier({
map: map, //所属的地图实例
autoSetFitView: false, //禁止自动更新地图视野
zIndex: 110,
getPosition: function(item) {scala
if(!item) {
return null;
}
var lngLatLine = item.lngLatLine;code
if(!lngLatLine) {
return null;
}
var parts = lngLatLine.split(',');
//返回经纬度
return [parseFloat(parts[0]), parseFloat(parts[1])];
},
//使用GroupStyleRender
renderConstructor: PointSimplifier.Render.Canvas.GroupStyleRender,
getHoverTitle: function(dataItem, idx) {
console.log("dataItem:" + dataItem.lngLatLine);
var lnglat = dataItem.lngLatLine.split(",");
addMark(lnglat[0], lnglat[1]);
},
renderOptions: {
//点的样式
pointStyle: {
width: 6,
height: 6,
fillStyle: 'rgba(153, 0, 153, 0.38)'
},
getGroupId: function(item, idx) {
return item.groupId;
},
groupStyleOptions: function(gid) {
return groupStyleMap[gid];
}
}
});
function onIconLoad() {
pointSimplifierIns.renderLater();
}
function onIconError(e) {
alert('图片加载失败!');
}
groupStyleMap = {
'0': {
pointStyle: {
//绘制点占据的矩形区域
content: PointSimplifier.Render.Canvas.getImageContent(
'http://a.amap.com/jsapi_demos/static/images/blue.png', onIconLoad, onIconError),
//宽度
width: 16,
//高度
height: 16,
//定位点为中心
offset: ['-50%', '-50%'],
fillStyle: null,
//strokeStyle: null
}
},
'1': {
pointStyle: {
//绘制点占据的矩形区域
content: PointSimplifier.Render.Canvas.getImageContent(
'http://a.amap.com/jsapi_demos/static/images/green.png', onIconLoad, onIconError),
//宽度
width: 16,
//高度
height: 16,
//定位点为中心
offset: ['-50%', '-50%'],
fillStyle: null,
// strokeStyle: null
}
}
};
var distCluster = new DistrictCluster({
zIndex: 100,
map: map, //所属的地图实例
getPosition: function(item) {
if(!item) {
return null;
}
var lngLatLine = item.lngLatLine;
if(!lngLatLine) {
return null;
}
var parts = lngLatLine.split(',');
//返回经纬度
return [parseFloat(parts[0]), parseFloat(parts[1])];
}
});
window.distCluster = distCluster;
function refresh() {
var zoom = map.getZoom();
console.log("zoom:" + zoom)
//获取 pointStyle
var pointStyle = pointSimplifierIns.getRenderOptions().pointStyle;
//根据当前zoom调整点的尺寸
pointStyle.width = pointStyle.height = 2 * Math.pow(1.2, map.getZoom() - 3);
}
map.on('zoomend', function() {
refresh();
});
refresh();
$('
').appendTo(document.body);
$.get('https://a.amap.com/amap-ui/static/data/10w.txt', function(csv) {
$('#loadingTip').remove();
console.log("调用数据")
var lines = csv.split('\n');
data = [];
for(var i = 0, len = lines.length; i < len; i++) {
data.push({
lngLatLine: lines[i],
groupId: i % 2
});
}
distCluster.setData(data);
pointSimplifierIns.setData(data);
});
}
//加载相关组件
AMapUI.load(['ui/geo/DistrictCluster', 'ui/misc/PointSimplifier', 'lib/$'], function(DistrictCluster, PointSimplifier, $) {
//启动页面
initPage(DistrictCluster, PointSimplifier, $);
});
效果图以下:
html 地址 点击召唤高德,高德地图api 点聚合+海量点+点击事件(根据地区或坐标进行定位)...相关推荐
- 高德地图api 点聚合+海量点+点击事件(根据地区或坐标进行定位)
<!doctype html> <html lang="zh-CN"> <head> <!-- 原始地址://webapi ...
- 【百度地图API】如何给自定义覆盖物添加事件
原文:[百度地图API]如何给自定义覆盖物添加事件 摘要: 给marker.lable.circle等Overlay添加事件很简单,直接addEventListener即可.那么,自定义覆盖物的事件应 ...
- 高德h5地图api接口_html5通过腾讯地图、高德地图、百度地图开发api接口获取坐标对应的周边信息...
在通过 geolocation 获取到当前的 GPS 坐标后,需要通过"逆地理位置解析"才能得到街道对应的街道.建筑物.周边等相关信息. 下面我使用国内的三家主要的地图厂商(腾讯地 ...
- 把通过高德静态地图API获取的地图图片,拼接成一张大地图图片
默认采用: zoom=17&size=1024*1024&scale=2 高德地图api参数.获取的是2048*2048大小的图片,修改参数之后需要调整图片截取和拼接的偏移量 程序中部 ...
- 使用高德地图api点聚合案例 (自定义样式)
高德地图api地址:https://lbs.amap.com/api/javascript-api/reference/map 1.异步创建script标签 注意需要MarkerClusterer插件 ...
- 使用高德(百度)地图API
以高德地图为例: 高德地图API官网申请key; 在index.html中引入: 如果是Vue-cli2,在build/webpack.base.conf.js中的module.exports={}中 ...
- 运用百度地图API离线版(在线版)实现网管系统中终端定位和终端信息获取的功能...
一.了解百度地图API 1.百度地图JavaScript API简介 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可在网站中构建功能丰富.交互性强的地图应用 ...
- 高德h5地图api接口_H5,JS中使用微信、高德获取定位
目的: --:展示游戏玩家彼此之间的距离,防止棋牌游戏中用户作弊 经过: 1:在微信公众号,配置对应的JS域名,IP地址白名单 2:在JS页面中,调用微信的JS-SDK,来使用微信的getLocati ...
- Android 使用 Retrofit 保存 高德 静态地图API 获取的地图图片
1.导入包 api 'com.squareup.retrofit2:retrofit:2.3.0' // 必要retrofit依赖 api 'com.squareup.retrofit2:adapte ...
最新文章
- LeetCode简单题之设计 Goal 解析器
- python 在字典插入值和修改字典value值的方法
- 你的团队推行「敏捷」遇到多少坑?来看团队敏捷转型之旅必经12阶段
- 深度神经网络在基于视觉的目标检测中的应用
- 2020年网站优化思路从哪着手?
- javascript网页自动填表_JavaScript脚本实现网页批量自动勾选及内容填写
- C/C++面试宝典2020版(最新版)
- TestStand-从LabVIEW创建TestStand数据类型的簇
- 【数据库系统】——经典示例University数据库建表代码和添加数据(大学系统)
- ABC182 E - Akari(扫描)
- MQTT与paho.mqtt
- P2690 [USACO04NOV]Apple Catching G 题解
- 【错误处理】Azkaban安装失败 installation Failed.Error chunking
- MATLAB矩阵每行按降序排列,每列升序并记录行号
- C#设置开机启动项、取消开机启动项
- 亚马逊旺季前的狂风暴雨
- 国民游戏机小霸王从辉煌到没落仅用了30年
- 湖南省计算机对口高考纲,湖南省2017年对口高考计算机应用类专业考试大纲
- 1.1JVM内存结构——堆、栈、方法区、直接内存、堆和栈区别
- SQL创建表之数据类型;
热门文章
- Maven必知的7个问题,你会吗?
- 如何让mysql索引更快一点
- 怎么修改RO服务器版本,谁知道build.prop的系统版本号怎么改
- C#中利用Expression表达式树进行多个Lambda表达式合并
- webpack入坑指南
- linux每隔多久调度y,Linux 进程调度+Linux系统一般执行过程 笔记
- 口腔取模过程及注意事项_取模变形?教你三种方法,轻松防止取模变形!
- php页面不断弹出值_电脑自动弹出网页怎么办
- 网页版bpc电波对时_科普向:无需联网却能自动对时的钟表
- 操作多台_一支热电偶能否连接多台显示仪表