百度地图-自定义mark以及为其添加信息搜索窗口
来源:互联网 发布:三星电视上不了网络 编辑:程序博客网 时间:2024/06/10 10:01
最近项目中要百度地图,学习了一下,以下是个简单的案例
废话不多说,直接贴代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}#allmap{height:560px;width:100%;}#r-result{width:100%;}.anchorBL{display:none}</style><script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的key"></script> <script type="text/javascript" src="<%=path%>/scripts/map/SearchInfoWindow_min.js"></script> <script type="text/javascript" src="<%=path%>/scripts/easyui/jquery.easyui.min.js"></script><link rel="stylesheet" href="<%=path%>/scripts/map/SearchInfoWindow_min.css" /><title>测试</title></head><body><div id="allmap"></div><div></body><script type="text/javascript"> // 百度地图API功能 var map = new BMap.Map('allmap'); //设置百度地图中心点以及缩放比例 map.centerAndZoom(new BMap.Point(xxx.xx, xxx.xx), 12); map.enableScrollWheelZoom(true); //设置获取展示数据的链接 var url = "action/xxaction_methods";$.post(url, function(data) {if (data != null || data != "") {var list = data.mapItems;var point = new Array(); //存放标注点经纬信息的数组var marker = new Array(); //存放lable对象的数组var info = new Array(); //存放提示信息窗口对象的数组var polygon = new Array();//存放图形对象数组var searchInfoWindow = new Array();//存放详情窗口点for ( var i = 0; i < list.length; i++) { //创建marker对象 point[i] = new BMap.Point(list[i].mapX, list[i].mapY); marker[i] = new BMap.Label("<a href='javascript:void(0);' style='text-decoration : none;color:#000000'>"+(i+1)+"</a>", //为lable填写内容 {offset:new BMap.Size(-10,-26), //label的偏移量,为了让label的中心显示在点上 position:point[i]}); //label的位置 marker[i].setStyle({ //给label设置样式,任意的CSS都是可以的 fontSize:"16px", //字号 border:"0", //边 height:"25px", //高度 width:"19px", //宽 textAlign:"center", //文字水平居中显示 //lineHeight:"20px" //行高,文字垂直居中显示 background:"url(scripts/map/marker_red_sprite.png)", //背景图片});map.addOverlay(marker[i]); //把label添加到地图上//搜索窗口的创建searchInfoWindow[i] = new BMapLib.SearchInfoWindow(map,list[i].messageText, {title : list[i].lableText, //标题width : 290, //宽度height : 105, //高度panel : "panel", //检索结果面板enableAutoPan : true, //自动平移enableSendToPhone: false,//禁用发送到手机offset:new BMap.Size(0,24),//设置偏移位置searchTypes : [ BMAPLIB_TAB_TO_HERE, //到这里去BMAPLIB_TAB_FROM_HERE //从这里出发]}); //为lable添加点击事件marker[i].addEventListener("click", (function(k) {// js 闭包return function() {searchInfoWindow[k].open(new BMap.Point(list[k].mapX, list[k].mapY));};})(i)); //拼接图形的坐标点var shape =[];var listshape = list[i].mapLists[0];if(undefined!=listshape){for ( var j = 0; j < listshape.length; j++) { shape.push(new BMap.Point(listshape[j].y,listshape[j].x));}//添加形状 polygon[i] = new BMap.Polygon(shape,{strokeColor : "red",strokeWeight : 2,strokeOpacity : 0.5}); //创建多边形 map.addOverlay(polygon[i]); //增加多边形}}} else {console.log("位置加载失败!");}}); //添加带有定位的导航控件var navigationControl = new BMap.NavigationControl({// 靠左上角位置anchor: BMAP_ANCHOR_TOP_LEFT,// LARGE类型type: BMAP_NAVIGATION_CONTROL_LARGE,// 启用显示定位enableGeolocation: true }); map.addControl(navigationControl);</script></html>注:这里使用了lable作为标注,在其监听事件上打开搜索窗口。坐标形式为百度坐标。
最终的效果如下:
1 0
- 百度地图-自定义mark以及为其添加信息搜索窗口
- 自定义百度地图全局搜索结果的信息窗口
- js 百度地图自定义弹出信息窗口
- 百度地图循环添加标注,并循环为标注添加信息窗口问题解决
- 在信息窗口添加图片按钮(百度地图)
- 百度地图API功能给多个点添加信息窗口
- 百度地图自定义搜索框控件,并添加事件
- 百度地图添加自定义图标,以及图标旋转
- 百度地图实现自定义搜索
- 创建百度地图,设置地图缩放,设置标注,添加信息窗口
- 百度地图添加多个marker,给marker添加多个信息窗口
- [Mark] 百度地图 Https
- Android — 之百度地图定位+添加Mark+InfoWindow
- 百度地图 循环加载marker并添加多个信息窗口,解决只显示最后一个窗口信息的问题
- 如何利用【百度地图API】,制作房产酒店地图?(上)——制作自定义标注和自定义信息窗口
- 百度地图-创建检索信息窗口对象
- 在百度地图信息窗口里添加按钮(html代码)
- 百度地图API学习之定位当前位置及自定义覆盖物和信息窗口
- 使用Ajaxupload.js上传文件
- java对象和json对象之间互相转换
- c高级之指针1
- Oracle-11g学习4 - grad安装2
- MySQL改变列顺序
- 百度地图-自定义mark以及为其添加信息搜索窗口
- android 应用程序结构是哪些
- js操作cookies
- JavaScript之——正则表达式
- UGUI背包系统(中)
- 2016年11月13日周工作知识点总结
- Wireshark 如何截取特定网段的数据
- LA 4356 Fire-Control System -
- noip注意事项