高德地图实现多点标注功能

高德地图实现多点标注功能

大家好,又见面了,我是你们的朋友全栈君。

<!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 src="/static/jquery/jquery-1.11.1.min.js"></script>
<link href="/static/materialize/css/materialize.min.css" rel="stylesheet">
<script src="/static/materialize/js/materialize.min.js"></script>
<link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>
<script src="http://webapi.amap.com/maps?v=1.3&key=6d116d4252d7f7ce90a808ace0812248"></script>   <!--引入高德地图api,key为你自己获取的key值-->
<script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>
<style> .amap-logo{ display: none; /*隐藏左下角地图logo*/ } .amap-copyright{ display: none!important; } </style>
</head>
<body>
<div id="container" style="width:100%;height:100%"></div>
<div id="tip"></div>
<script> var map = new AMap.Map('container', {}); map.plugin(["AMap.ToolBar"], function() { 
 map.addControl(new AMap.ToolBar()); }); var infoWindow = new AMap.InfoWindow({}); //创建信息窗口对象 ps.高德目前不支持多信息窗口,即使创建多个窗口对象,也只会显示一个 var lnglats= [["116.4123","39.906422"],["116.4352","39.906933"],["116.445435","39.9054345"]]; var data = [{ 
"id":1,"name":"我是第1个点","type":1},{ 
"id":2,"name":"我是第2个点","type":3},{ 
"id":3,"name":"我是第3个点","type":7}]; for(var i= 0;i<lnglats.length;i++){ var marker=new AMap.Marker({ position:lnglats[i], //采用默认样式,无需自定义 map:map }); content = []; content.push('ID:'+data[i].id); content.push('名称:'+data[i].name); marker.content = content; marker.title = data[i].id+"."+data[i].name; //标记点的title // if(data[i].id==2){ //默认打开第二个点的信息窗口 infoWindow.setContent(content.join("<br/>")); infoWindow.open(map,lnglats[i]); // } marker.on('dblclick',openAmap); //这里采用调到新页面方式导航,也可直接定义带导航功能的信息窗体,请参考http://lbs.amap.com/api/javascript-api/example/infowindow/infowindow-has-search-function/ //给Marker绑定单击事件 marker.on('click', markerClick); } map.setFitView(); //跳至地图当中导航 function openAmap(e){ 
 e.target.markOnAMAP({ name:e.target.title, position:e.target.getPosition() }) } //信息窗口 function markerClick(e){ 
 infoWindow.setContent(e.target.content.join('<br/>')); infoWindow.open(map, e.target.getPosition()); } //地图加载完成事件 map.on('complete', function() { 
 Materialize.toast('地图图块加载完毕!', 4000) // document.getElementById('tip').innerHTML = "地图图块加载完毕!当前地图中心点为:" + data[0].name; }); </script>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143467.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • socket网络编程——UDP编程流程「建议收藏」

    socket网络编程——UDP编程流程「建议收藏」UDP提供的是无连接、不可靠的、数据报服务。编程流程如下:socket()方法用来创建套接字,使用udp协议时,选择数据报服务SOCK_DGRAM。sendto()方法用来发送数据,由于UDP是无连接的,每次发送数据都需要指定对端的地址(IP和端口)。recvfrom()方法接收数据,每次都需要传给该方法一个地址结构来存放发送端的地址。recvfrom()方法可以接收所有客户端发送给当前应用程序的数据,并不是只能接收某一个客户端的数据。UDP服务端代码:#include<stdi

  • 获取 Chromium 源代码以及环境配置

    一、获取代码a) 不下载代码,直接浏览,到这里:http://src.chromium.org/viewvc/chrome/ 或者这里:http://code.google.co

    2021年12月25日
  • 使用postman发送http请求

    使用postman发送http请求

  • 手机上编写Java程序的软件

    手机上编写Java程序的软件对于程序员来说,编写代码几乎都是在电脑上,但有时候在一些特殊情况下,没有电脑,或者不方便带电脑,这时就想,要是能在手机上写代码该多好啊。以前我也折腾过,找过许多软件,但感觉不如我意;但我并没有放弃,在浏览YouTube的时候,偶然发现了一款软件,好奇的我就下载来试了试,还真是好用,功能挺齐全的。下面就给大家推荐一下。Android系统由于本人用的是Android手机,就主要讲讲在Android…

  • vector初始化与清空[通俗易懂]

    vector初始化与清空[通俗易懂]vector初始化与清空vector初始化vector<int>v;如果直接进行访问v[i]会报错解决方案:可以使用v.resize(n)或者v.resize(n,m)来初始化,前者是使用n个0来初始化,后者是使用n个m来初始化。vector清空//1.clear,清空元素,但不回收空间v.clear();//2.swap,清空元素并回收内存vector<int>().swap

  • sendfile函數的使用[通俗易懂]

    sendfile函數的使用[通俗易懂]sendfile函數linux內核新加的函數,可以使得網絡傳輸文件時用户层无需分配缓冲区给将要传输的文件,从而能够节约内存,并直接调用系统调用#include&lt;sys/sendfile.h&gt;ssize_tsendfile(intout_fd,intin_fd,off_toffset,size_tcount);实例:#include&lt;st…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号