angularjs1 实现地图添加自定义控件(搜索功能)及事件
// 添加地图自定义控件的事件
function addEventHandler(target, eventName, handler) {
if (target.addEventListener) {
target.addEventListener(eventName, handler, false);
} else if (target.attachEvent) {
target.attachEvent("on" + eventName, handler);
} else {
target["on" + eventName] = handler;
}
}
//自定义地图上的搜索控件
function searchControl(){
// 设置默认停靠位置和偏移量
this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
this.defaultOffset = new BMap.Size(10, 10);
this.searchBox = document.createElement("input");// 搜索框
this.searchBox.setAttribute("type", "text");
this.searchButton = document.createElement("span");// 搜索按钮
}
searchControl.prototype = new BMap.Control();
searchControl.prototype.initialize = function(map){
// 创建一个DOM元素
var div = document.createElement("div");
// 设置样式
div.className = "hosmapsearch";
var self = this;
var searchInput = this.searchBox;
searchInput.className = "basictypefour";
searchInput.placeholder = "搜索...";
var searchBtn = this.searchButton;
searchBtn.className = "hopsearcon";
addEventHandler(searchBtn, "click", function() {
var address = searchInput.value;
// 创建地址解析器实例
var myGeo = new BMap.Geocoder();
// 将地址解析结果显示在地图上,并调整地图视野
myGeo.getPoint(address, function(point){
if (point) {
$scope.$apply(function(){
$scope.coordinate = JSON.stringify(point);
});
console.log($scope.coordinate);
map.centerAndZoom(point, 16);
map.addOverlay(new BMap.Marker(point));
}
}, address);
});
//添加输入框和搜索按钮到div中
div.appendChild(searchInput);
div.appendChild(searchBtn);
// 添加DOM元素到地图中
map.getContainer().appendChild(div);
// 将DOM元素返回
return div;
}
//初始化map
var map;
var initialize = {
initMap:function(){
map = new BMap.Map("hospitalAddMap"); // 创建Map实例
var point = new BMap.Point(39.919422,116.417773);//默认初始化地图中心点(BJ)
map.centerAndZoom(point,16);// 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true);//开启鼠标滚轮缩放
map.enableDragging();//拖拽
// 创建控件实例
var mySearchCtrl = new searchControl();
// 添加到地图当中
map.addControl(mySearchCtrl);
this.setCityCenter();
},
setCityCenter:function(){
function myFun(result){//ip定位初始化城市
var cityName = result.name;
console.log(cityName);
map.centerAndZoom(cityName, 16);
}
var myCity = new BMap.LocalCity();
myCity.get(myFun);
}
}
//init map
initialize.initMap();
angularjs1 实现地图添加自定义控件(搜索功能)及事件的更多相关文章
- 为Jekyll+GitHub Pages添加全文搜索功能
动态演示如下: [上传失败, 请自行搜索原文] 源码库: program-in-chinese/team_website 找到此JS工具: christian-fei/Simple-Jekyll-Se ...
- 给 hugo 博客添加搜索功能
起因 我的博客使用了 hugo 作为静态生成工具,自带的主题里也没有附带搜索功能.看来,还是得自己给博客添加一个搜索功能. 经过多方查找,从 Hugo Fast Search · GitHub 找到一 ...
- 百度地图API示例之添加自定义控件
代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
- 百度地图api添加自定义控件
官网栗子:http://lbsyun.baidu.com/jsdemo.htm#b0_6 <!DOCTYPE html><html><head> <meta ...
- 百度地图API 批量添加 带检索功能的信息窗口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- lucene3.6笔记添加搜索功能
lucene为程序添加搜索功能,此功能基于已创建好的文档的索引之上.这里我已经为一些文档建立了索引,并保存到硬盘上.下面开始针对这些索引,添加搜索功能. 1.简单的TermQuery搜索 Java代码 ...
- 百度地图API的自动定位和搜索功能(移动端)
近期有个项目涉及到百度地图API,要求做到自动定位和搜索功能.煞费苦心的研究半天,终于能将两个功能合二为一,现将代码贴出来分享给大家,希望你们的砖搬得又快又好.注释不多,具体请参照:http://lb ...
- 011.Adding Search to an ASP.NET Core MVC app --【给程序添加搜索功能】
Adding Search to an ASP.NET Core MVC app 给程序添加搜索功能 2017-3-7 7 分钟阅读时长 作者 本文内容 1.Adding Search by genr ...
- dgango中admin下添加搜索功能
admin下添加搜索功能: 在表单中加入search_fields = ['ip','hostname'] 可模糊匹配 当有人在管理搜索框中进行搜索时,Django将搜索查询分解成单词,并返回包含 ...
随机推荐
- 前端学习 第六弹: javascript中的函数与闭包
前端学习 第六弹: javascript中的函数与闭包 当function里嵌套function时,内部的function可以访问外部function里的变量 function foo(x) { ...
- 《java编程思想》读书笔记(一)开篇&第五章(1)
2017 ---新篇章 今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...
- iOS_Quartz2D之涂鸦板
响应者对象:继承了UIResponder的对象 触摸事件:一根或多根手指: 开始触摸: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent ...
- jQuery下通过$.browser来判断浏览器
使用方法: $.browser.['浏览器关键字'] 代码如下: $(function() { if($.browser.msie) { alert("this is msie") ...
- Java后台判断请求来自PC端还是移动端
核心代码
- Nginx-默认不压缩HTTP/1.0与长连接的关系
在移动的 http 请求量和联通不相上下的前提下,移动的 http response 带来的网络流量是联通的 2.5 倍.移动大概有 3 成的请求都没有做压缩,而联通几乎都是经过压缩的.那些没有经过压 ...
- linux根文件系统制作
在嵌入式中移植的内核下载到开发板上,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误. 那么根文件系统在系统启动中到底是什么时候挂载的呢?先将/dev/ram0挂载,而后执行/l ...
- jquery属性的操作
HTML示例代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Oracle RAC asm常用命令
在Oracle RAC环境下,使用grid帐号执行 运行asmcmd进入asm命令模式,如: [grid@oradb-node1 ~]$ asmcmd ASMCMD> ASMCMD> du ...
- html引入css文件
在HTML中,引入CSS的方法主要有行内式.内嵌式.导入式和链接式. 行内式:即在标记的style属性中设定CSS样式,这种方式本质上没有体现出CSS的优势,因此不推荐使用.例: <html&g ...