高德开放平台实现批量自定义marker和信息窗体显示
上篇博客提到云图无法实现文本标签标记marker,这篇博客着重实现在marker点文本标记以及自定义按钮窗体显示。
1.效果:
2.代码实现
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>编辑多边形</title>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.14&key=760d16c25fa8ee3c547b693a6c414821&plugin=AMap.DistrictSearch,Map3D"></script>
<script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<style>
html,
body,
#container {
margin: 0;
height: 100%;
}
</style>
</head>
<body>
<div id="container"></div>
<script>
var p;//定义景点坐标数组
var markers = [];//记录所有景点的Marker信息
var _location;
var map = new AMap.Map('container', {
resizeEnable: true,
zoom: 12,
viewMode: '3D',
center: [121.124178, 31.150681],
mapStyle: 'amap://styles/5a2dbb143362de08809a8aebe25ca455',
//layers: [
// new AMap.TileLayer.RoadNet({
// zIndex: 20
// })]//,
// new AMap.TileLayer({
// zIndex: 6,
// opacity: 1,
//getTileUrl: 'https://t{1,2,3,4}.tianditu.gov.cn/DataServer?T=ter_w&x=[x]&y=[y]&l=[z]'
//getTileUrl: 'https://t{s}.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=5ecfe4e0cecdafec9a858e37c261084c'
//})]
});
loadScenic()
addmarker()
new AMap.DistrictSearch({
extensions: 'all',
subdistrict: 0
}).search('青浦区', function (status, result) {
// 外多边形坐标数组和内多边形坐标数组
var outer = [
new AMap.LngLat(-360, 90, true),
new AMap.LngLat(-360, -90, true),
new AMap.LngLat(360, -90, true),
new AMap.LngLat(360, 90, true),
];
var holes = result.districtList[0].boundaries
var pathArray = [
outer
];
pathArray.push.apply(pathArray, holes)
var polygon = new AMap.Polygon({
pathL: pathArray,
strokeColor: '#00eeff',
strokeWeight: 1,
fillColor: '#71B3ff',
fillOpacity: 0.5
});
polygon.setPath(pathArray);
map.add(polygon);
var bounds = map.getBounds(); // 获取显示范围
map.setLimitBounds(bounds); // 限制地图显示范围
});
function addmarker() {
//var markers = [];
for (var i = 0; i < p.length; i++) {
var point=[p[i].x,p[i].y]
var marker = new AMap.Marker({
position: point,
map: map,
title: p[i].title,
address: p[i].address,
icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png",
visible: true,
});
marker.setLabel({
offset: new AMap.Pixel(-60, -40), //设置文本标注偏移量
content: p[i].title, //设置文本标注内容
direction: 'right' //设置文本标注方位
});
AMap.event.addListener(marker, 'click', function (e) {
var clouddata = e.target.He;
_location = [clouddata.position.lng, clouddata.position.lat];
//var photo = ['<img width=240 height=100 src="' + clouddata.img + '"><br>'];
var infoWindow = new AMap.InfoWindow({
content: "<font class='title'>" + "名称:" + clouddata.title + "<br />" + "地址:" + clouddata.address + "<br />" + "联系电话:" + "021-69237067" + "<br />" + "经纬度:" + _location,
size: new AMap.Size(0, 0),
autoMove: true,
offset: new AMap.Pixel(0, -25)
});
infoWindow.open(map, _location);
console.log(clouddata);
});
markers.push(marker);
}
//map.setFitView();
}
function loadScenic() {
p = [{ x: 121.185251, y: 31.197498, title: '赵重路泵站', address: '上海市青浦区赵重公路2396号'},
{ x: 121.131239, y: 31.17475, title: '通波塘泵站', address: '上海市青浦区淞泽大道888号' },
{ x: 121.130353, y: 31.166507, title: '华青路泵站', address: '上海市青浦区华青路666号' },
{ x: 121.151442, y: 31.171122, title: '新业路泵站', address: '上海市青浦区汇金路999号' },
{ x: 121.117217, y: 31.175185, title: '新区路泵站', address: '上海市青浦区淞泽大道9502号' },
{ x: 121.211852, y: 31.181424, title: '赵巷A泵站', address: '上海市青浦区嘉松中路999号' },
{ x: 121.209637, y: 31.172491, title: '赵巷B泵站', address: '上海市青浦区青浦区芦沈路125号' },
{ x: 121.228863, y: 31.165094, title: '赵巷C泵站', address: '上海市青浦区盈港东路999号青山支路' },
{ x: 121.090117, y: 31.19679, title: '金星路泵站', address: '上海市青浦区天辰路888号' },
{ x: 121.140076, y: 31.141699, title: '外青松泵站', address: '上海市青浦区外青松公路888号' },
{ x: 121.09622, y: 31.203285, title: '新金路泵站', address: '上海市青浦区新金路888号' },
{ x: 121.151911, y: 31.153891, title: '汇金路泵站', address: '上海市青浦区汇金路秀泽路' },
{ x: 121.080865, y: 31.174616, title: '民乐路泵站', address: '上海市青浦区淞泽大道西青赵公路' },
{ x: 121.151442, y: 31.171122, title: '新城一站泵站', address: '上海市青浦区汇金路999号' },
{ x: 1121.137333, y: 31.166801, title: '青浦第二污水厂', address: '上海市青浦区新水路1号' },
];
}
</script>
</body>
</html>
想获取更多个人信息和相关技术内容也可以关注我的公众号:

高德开放平台实现批量自定义marker和信息窗体显示的更多相关文章
- 基于高德开放平台的 NODE 天气信息组件
看看了画在手上的Armani手表,马上就快到了下班的时间了,心里总觉的空唠唠的, 好像空缺了什么一样,仔细的想了一想,微微叹了一口气,觉得是时候在这里和大家分享一下原因了........ 首先: ## ...
- 基于高德开放平台Map Lab的数据可视化
在Map Lab上创建可视化项目,首先需要添加数据.添加数据有4种方式,分别是: 上传CSV文件添加数据 上传Excel文件添加数据 连接在线数据库添加数据 提供在线数据API添加数据 一.数据上传说 ...
- android高德地图网络路径实现自定义marker并点击弹出自定义窗口
android中使用地图的地方随处可见,今天记录一下网络路径生成自定义marker,点击标记弹出自定义的窗口(在这里使用的是高德地图) 在这里我们使用Grilde去加载网络图片,因为这个简直太方便了! ...
- web开发如何使用高德地图API(三)点击热点打开信息窗体
说两句: 以下内容除了我自己写的部分,其他部分在高德开放平台都有(可点击外链访问). 我所整理的内容以实际项目为基础希望更有针对性的,更精简. 点击直奔主题. 准备工作: 首先,注册开发者账号,成为高 ...
- 【总结整理】高德LBS开放平台学习
高德LBS开放平台地址 http://lbs.amap.com/api/javascript-api/guide/create-map/mapstye 概述->示例中心Demo体验-> ...
- Android集成高德地图如何自定义marker
高德地图自定义Marker 高德地图默认的marker样式是这种 一般的修改样式是通过icon接口来调整 MarkerOptions markerOptions = new MarkerOptions ...
- Java对接拼多多开放平台API(加密上云等全流程)
前言 本文为[小小赫下士 blog]原创,搬运请保留本段,或请在醒目位置设置原文地址和原作者. 作者:小小赫下士 原文地址:Java对接拼多多开放平台API(加密上云等全流程) 本文章为企业ERP(I ...
- iOS5.0以上使用新浪微博开放平台OAuth 续(及解决登录无效问题)
新浪微博开放平台为第三方应用提供了简便的合作模式,满足了手机用户和平板电脑用户随时随地分享信息的需求.通过调用平台的api即可实现很多微博上的功能. 本篇主要目的是记录新浪微博移动SDK iOS版本的 ...
- 新浪微博开放平台开发-android客户端(1)【转】
http://www.cnblogs.com/virusswb/archive/2011/08/05/2128941.html 最近不是太忙,花了一些时间学习android的应用开发.经过两个星期的学 ...
随机推荐
- 学习响应式编程 Reactor (3) - reactor 基础
Reactor Reactor 项目的主要 artifact 是 reactor-core,这是一个基于 Java 8 的实现了响应式流规范的响应式库. Reactor 提供了实现 Publisher ...
- linux下 大日志文件查看与搜索---less
场景 有一个几十m的大日志文件,里边的记录是按时间排序的. 现在需要找到其中,不知道在什么位置的一条错误消息.这时候,想把内容拷出来都费劲,就算拷出来了,一般的编辑器也难以hold住这么大的文件.这时 ...
- vue环境搭建以及使用vue-cli创建项目
我要跑vue项目,所以我要搞vue. 1.环境搭建 进入node官网下载对应版本的node,一步步安装即可. 安装会自动配置路径和npm包管理环境,通过node -v进行验证 2.安装vue-cli脚 ...
- 上海某大公司:你是了解Redis对吧?
<对线面试官>系列目前已经连载26篇啦!有深度风趣的系列! [对线面试官]Java注解 [对线面试官]Java泛型 [对线面试官] Java NIO [对线面试官]Java反射 & ...
- ACdream 1007 a+b 快速幂 java秒啊,快速幂 避免 负数移位出错
a + b ( sigma (ai^x) ) % mod 1 import java.util.*; 2 import java.math.*; 3 import java.io.*; 4 p ...
- Element Ui使用技巧——Form表单的校验规则rules详细说明
Element UI中对Form表单验证的使用介绍: Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item的 prop 属性设置为需校验的字段名 ...
- filebeat 提取获取massage字段 利用pipeline grok 7.12
嘴巴会说(情商)比技术有时候更重要! 水平有限,希望你看完有所收获! 背景 1,filebeat直连Elasticsearch,需要对massage提取一些特定的字段. 2,如果你对数据需要处理的比较 ...
- 堆&&优先队列&&TreeMap
题目描述 5710. 积压订单中的订单总数 题解 题目不难,主要是要读懂题意,一步步模拟,代码较长,需要细心检查. 坑较多,比如我犯了很多傻逼问题:想都不想就拿1<<9+7当作100000 ...
- DRF之权限和频率限制
一.权限 权限可以限制用户对视图的访问和对具体数据对象的访问. 在执行视图的dispatch方法前,会先进行视图访问权限的判断 在通过get_object获取对象时,会进行模型对象访问权限的判断 源码 ...
- Git——基础篇
Git--基础篇 Git简而言之就是个版本控制工具,用于跟踪和管理代码的工具. 版本控制 本地版本控制 就是我们自己本地对文档进行保存文件的每一个修改版本的记录. 集中式版本控制--SVN 有一个远程 ...