`

快速的基于百度地图的搜索功能实现(存档)

阅读更多

1、结合前一篇的标注功能,以下可直接在搜索页面中添加一个DIV层的搜索功能

<div id="tools"  style="left:100px;top:5px;position: absolute;"><INPUT id=PoiSearch  name=word maxLength=256 >
<SELECT NAME="field" ID="field">
	<OPTION VALUE="">---请选择---</OPTION>
	<OPTION VALUE="land" SELECTED>地块</OPTION>
</SELECT>
    <INPUT TYPE="button" VALUE="搜索" ONCLICK="search()">
</div>

 

2、并在地图初始化脚本区中,添加搜索方法,以有结合业务搜索结果数据标注到地图上

//初始化地图参数
........

var land_name = "";
var land_intro = "";
/*
 * 展示地块窗口,并把地图中心位置移动到相应位置
 */
function markCurrentLand(point,marker,isopen){
	/*var opts = {
  		  width : 350,     // 信息窗口宽度
  		  height: 150,     // 信息窗口高度
  		  title : land_name  // 信息窗口标题
	}*/
	//已成功标注到地图,显示信息到地图
	var sContent =
	"<h4 style='margin:0 0 5px 0;padding:0.2em 0'>"+land_name+"</h4>" + 
	"<img style='float:right;margin:4px' id='imgDemo' src='images/gongshuRMZFBuilding.jpg' width='139' height='104' title='**区'/>" +
	"<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>用地性质:出让面积:地块介绍:"+land_intro+"</p>" +
	"</div>";
	//var infoWindow = new BMap.InfoWindow(sContent,opts);  // 创建信息窗口对象
	var infoWindow = new BMap.InfoWindow(sContent);  // 创建信息窗口对象
	map.addOverlay(marker); //添加图标

	if(isopen){
		setTimeout(function(){
			map.panTo(point); //移动到当前对象
			map.openInfoWindow(infoWindow, point);      // 打开信息窗口
		}, 1000);
	}
			
	marker.addEventListener("click", function(){
       	this.openInfoWindow(infoWindow);
		//图片加载完毕重绘infowindow
	    document.getElementById('imgDemo').onload = function (){
		   infoWindow.redraw();
	    }
	});
}

//编写自定义函数,创建标注
function addMarker(point, index){
	//比如一些自定义图片http://api.map.baidu.com/img/markers.png  http://openapi.baidu.com/map/images/custom_a_j.png  http://openapi.baidu.com/map/images/us_mk_icon.png
  var myIcon = new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), {
    offset: new BMap.Size(10, 25),                 // 指定定位位置
    imageOffset: new BMap.Size(0, 0 - index * 25)   // 设置图片偏移
  });
  var marker = new BMap.Marker(point, {icon: myIcon});
  map.addOverlay(marker);
  markCurrentLand(point,marker,false);
}

/*
 * 本地搜索 定位
 */
function search(){ 
	var searchStr = document.getElementById("PoiSearch").value;
	var type = document.getElementById("field").value;
	var act = "";
	if(type=="land"){
		act="getLandByName";
	}
	//业务表的查询
	//通过UCAP应用平台(或其它第三方AJAX框架获取数据),到数据库中更新位置
	var rs = parent.bdgUtil.synchronization("type="+type+"&act="+act+"&searchStr="+searchStr);
	map.clearOverlays();//清除所有覆盖物
	if(rs&&rs.length>=1){
		for(var i=0;i<rs.length;i++){
			land_name = rs[i].land_name;
			land_intro = rs[i].land_intro;
			var newPoint = new BMap.Point(rs[i].land_x, rs[i].land_y); // 创建点坐标
		    addMarker(newPoint, i);
		}
	}else{
		
	}
	map.addOverlay(polyline);//画定**区边界
	//百度地图的查询
	//var local = new BMap.LocalSearch(map, {
	//	  renderOptions:{map: map}
	//	});
	//local.search(searchStr);
}

</script>

 3、功能页面

搜索功能

  • 大小: 71 KB
分享到:
评论

相关推荐

    python课程设计-基于python实现的游戏存档同步程序源码+详细注释.zip

    python课程设计-基于python实现的游戏存档同步程序源码+详细注释.zippython课程设计-基于python实现的游戏存档同步程序源码+详细注释.zippython课程设计-基于python实现的游戏存档同步程序源码+详细注释.zip ...

    自制推箱子小游戏,含登录注册系统、自定义关卡功能、存档回档功能等.zip

    自制推箱子小游戏,含登录注册系统、自定义关卡功能、存档回档功能等自制推箱子小游戏,含登录注册系统、自定义关卡功能、存档回档功能等自制推箱子小游戏,含登录注册系统、自定义关卡功能、存档回档功能等自制推...

    PHP企业微信会话存档扩展

    在处理企业微信会话存档时,这样的扩展能够帮助开发者更高效地与企业微信的API接口进行交互,实现会话记录的存档、检索等功能。 企业微信提供的会话存档API通常包括以下关键操作: 1. **配置存档策略**:企业需要...

    Python课程大作业基于python实现的之了课堂爬虫源码(题目采集、答案、解析存档).zip

    Python课程大作业基于python实现的之了课堂爬虫源码(题目采集、答案、解析存档).zipPython课程大作业基于python实现的之了课堂爬虫源码(题目采集、答案、解析存档).zipPython课程大作业基于python实现的之了课堂...

    杂交版植物大战僵尸存档 全通过存档

    #该存档已经适配植物大战僵尸杂交版最新版本 v2.1 1.根据自己需要的功能进行选择 (1) 导入存档 (2) 删除存档 (3) 备份存档 (4) 打开存档位置 (5) 强制结束游戏 (6) 退出导入工具 2.该工具可以更加地游玩通关的功能 ...

    存档功能插件for Discuz!2.0

    存档功能插件的核心作用在于将论坛中的过期或不常访问的帖子进行归档处理,使得主要页面能保持简洁、快速的加载速度,同时不影响用户对历史信息的查询。这在大型论坛或信息量庞大的社区中尤其重要,因为大量的帖子...

    基于Unity3D的小游戏源码(实现了对话、任务、背包、武器系统,可以存档读档,有简短的剧情,行为树控制角色AI).zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、...基于Unity3D的小游戏源码(实现了对话、任务、背包、武器系统,可以存档读档,有简短的剧情,行为树控制角色AI)...

    基于SpringBoot卫生备案系统的设计与实现

    基于SpringBoot的卫生备案系统是一种高效、现代化的信息管理解决方案,其设计与实现基于Java语言和SpringBoot框架。下面将对这一系统的设计与实现展开详细介绍。 首先,需要明确卫生备案系统的主要目的是为了简化和...

    雨天软件系列之-电脑存档全能搜索助手

    "雨天软件系列之-电脑存档全能搜索助手"是一款专为个人用户设计的高效文件检索工具,旨在解决用户在日常工作中对电脑存档进行快速定位和管理的问题。这款软件的特点在于其强大的搜索功能和友好的用户界面,使得无论...

    基于Arcengine的地图打印小程序

    ArcEngine地图打印小程序实现了以下关键功能: 1. **页面布局加载**:程序首先需要加载ArcGIS的PageLayout文件,这通常包含了一个或多个地图层、图例、比例尺等元素。通过ArcEngine API,程序可以读取并显示这些...

    springboot实现获取企业微信会话内容存档支持windows、linux部署配置

    java的springboot框架获取企业微信会话内容进行存档,支持windows部署、linux下的docker部署; 能学到什么:企业微信获取会话的流程;企业微信的获取会话内容的公钥私钥加解密;获取企业微信会话内容; 阅读建议:此...

    rmxp游戏万能通用存档修改器

    《rmxp游戏万能通用存档修改器》是一款专为RMXP(RPG Maker XP)游戏设计的强大工具,旨在帮助玩家轻松修改游戏存档,从而实现个性化游戏体验。这款修改器具有广泛的应用范围,几乎可以支持所有基于RMXP平台开发的...

    功能模块存档模板,用于设计成果归档

    "功能模块存档模板"是一个专门针对这一需求而设计的工具,它旨在帮助设计师和开发团队系统化、规范化地整理和保存他们的设计成果,确保信息的安全性和可追溯性。这个模板不仅能够提升工作效率,还能在后续的开发、...

    网吧存档服务器个人存档

    在网吧运营中,为了提供给玩家更好的游戏体验和数据保存,网吧存档服务器扮演着重要的角色。...而“服务端”和“客户端”的文件可能分别包含了实现这些功能所需的程序和配置文件,对于维护和升级存档系统至关重要。

    c语言飞机存档系列

    1. **游戏循环**:游戏的运行基于主循环,这个循环不断执行,处理玩家输入,更新游戏状态,渲染屏幕,直至游戏结束。 2. **对象定义**:飞机、子弹、敌人等都是游戏中的对象,需要定义它们的数据结构,比如坐标、...

    RMVX 存档修改器

    《RMVX 存档修改器》是一款专为使用RPG Maker VX开发的游戏设计的工具,它允许玩家或开发者深入游戏内部,对游戏存档进行调整和修改,以实现个性化或者调试的目的。这款修改器是建立在RPG Maker VX的基础上运行的,...

    java的springboot框架实现获取企业微信会话内容存档

    java的springboot框架获取企业微信会话内容进行存档,支持windows部署、linux下的docker部署; 能学到什么:企业微信获取会话的流程;企业微信的获取会话内容的公钥私钥加解密;获取企业微信会话内容; 阅读建议:此...

    50层魔塔,可以接上次存档继续打,也可以自己修改地图

    6. **文件操作与存档机制**:为了实现存档功能,程序需要读写文件,将玩家的游戏进度保存到磁盘上。VB提供了文件流对象,可以方便地实现这一功能。 7. **错误处理与调试**:VB提供了错误处理机制,如On Error语句,...

    krkr实现滚动存档界面示例

    本示例将详细介绍如何使用krkr引擎实现一个滚动式的存档界面。 首先,krkr引擎是由日本开发者Kagura Games开发的开源游戏引擎,它提供了丰富的图形、音频处理功能以及脚本语言TJS(TouhouJoujuuScript),让非...

Global site tag (gtag.js) - Google Analytics