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 点聚合+海量点+点击事件(根据地区或坐标进行定位)...相关推荐

  1. 高德地图api 点聚合+海量点+点击事件(根据地区或坐标进行定位)

    <!doctype html> <html lang="zh-CN"> <head>         <!-- 原始地址://webapi ...

  2. 【百度地图API】如何给自定义覆盖物添加事件

    原文:[百度地图API]如何给自定义覆盖物添加事件 摘要: 给marker.lable.circle等Overlay添加事件很简单,直接addEventListener即可.那么,自定义覆盖物的事件应 ...

  3. 高德h5地图api接口_html5通过腾讯地图、高德地图、百度地图开发api接口获取坐标对应的周边信息...

    在通过 geolocation 获取到当前的 GPS 坐标后,需要通过"逆地理位置解析"才能得到街道对应的街道.建筑物.周边等相关信息. 下面我使用国内的三家主要的地图厂商(腾讯地 ...

  4. 把通过高德静态地图API获取的地图图片,拼接成一张大地图图片

    默认采用: zoom=17&size=1024*1024&scale=2 高德地图api参数.获取的是2048*2048大小的图片,修改参数之后需要调整图片截取和拼接的偏移量 程序中部 ...

  5. 使用高德地图api点聚合案例 (自定义样式)

    高德地图api地址:https://lbs.amap.com/api/javascript-api/reference/map 1.异步创建script标签 注意需要MarkerClusterer插件 ...

  6. 使用高德(百度)地图API

    以高德地图为例: 高德地图API官网申请key; 在index.html中引入: 如果是Vue-cli2,在build/webpack.base.conf.js中的module.exports={}中 ...

  7. 运用百度地图API离线版(在线版)实现网管系统中终端定位和终端信息获取的功能...

    一.了解百度地图API 1.百度地图JavaScript API简介 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可在网站中构建功能丰富.交互性强的地图应用 ...

  8. 高德h5地图api接口_H5,JS中使用微信、高德获取定位

    目的: --:展示游戏玩家彼此之间的距离,防止棋牌游戏中用户作弊 经过: 1:在微信公众号,配置对应的JS域名,IP地址白名单 2:在JS页面中,调用微信的JS-SDK,来使用微信的getLocati ...

  9. Android 使用 Retrofit 保存 高德 静态地图API 获取的地图图片

    1.导入包 api 'com.squareup.retrofit2:retrofit:2.3.0' // 必要retrofit依赖 api 'com.squareup.retrofit2:adapte ...

最新文章

  1. LeetCode简单题之设计 Goal 解析器
  2. python 在字典插入值和修改字典value值的方法
  3. 你的团队推行「敏捷」遇到多少坑?来看团队敏捷转型之旅必经12阶段
  4. 深度神经网络在基于视觉的目标检测中的应用
  5. 2020年网站优化思路从哪着手?
  6. javascript网页自动填表_JavaScript脚本实现网页批量自动勾选及内容填写
  7. C/C++面试宝典2020版(最新版)
  8. TestStand-从LabVIEW创建TestStand数据类型的簇
  9. 【数据库系统】——经典示例University数据库建表代码和添加数据(大学系统)
  10. ABC182 E - Akari(扫描)
  11. MQTT与paho.mqtt
  12. P2690 [USACO04NOV]Apple Catching G 题解
  13. 【错误处理】Azkaban安装失败 installation Failed.Error chunking
  14. MATLAB矩阵每行按降序排列,每列升序并记录行号
  15. C#设置开机启动项、取消开机启动项
  16. 亚马逊旺季前的狂风暴雨
  17. 国民游戏机小霸王从辉煌到没落仅用了30年
  18. 湖南省计算机对口高考纲,湖南省2017年对口高考计算机应用类专业考试大纲
  19. 1.1JVM内存结构——堆、栈、方法区、直接内存、堆和栈区别
  20. SQL创建表之数据类型;

热门文章

  1. Maven必知的7个问题,你会吗?
  2. 如何让mysql索引更快一点
  3. 怎么修改RO服务器版本,谁知道build.prop的系统版本号怎么改
  4. C#中利用Expression表达式树进行多个Lambda表达式合并
  5. webpack入坑指南
  6. linux每隔多久调度y,Linux 进程调度+Linux系统一般执行过程 笔记
  7. 口腔取模过程及注意事项_取模变形?教你三种方法,轻松防止取模变形!
  8. php页面不断弹出值_电脑自动弹出网页怎么办
  9. 网页版bpc电波对时_科普向:无需联网却能自动对时的钟表
  10. 操作多台_一支热电偶能否连接多台显示仪表