公司一般都有通讯和住址的统计,但是文字化的表格根本就不知道住在哪。

用百度地图就可以轻松解决,

而且公司还经常人员变动,读取excel中的内容,就不用每次还要更改地图文件了。

在遇到需要聚餐在地图中标点时,在文本框中输入地址,多个地址需要用英文逗号“,”分割。

为了单个文件的方便,存放更雅观这里引用的全是网络地址:

 

<script src="http://api.map.baidu.com/getscript?v=2.0&ak=你的密钥"></script>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/xlsx/0.14.3/xlsx.full.min.js"></script>
<script src="https://cdn.bootcss.com/angular.js/1.7.4/angular.min.js"></script>

下面是全部js代码:

 // 百度地图API功能
var map = new BMap.Map("l-map");
map.centerAndZoom(new BMap.Point(114.413121, 30.480956), 13);
map.enableScrollWheelZoom(true);
var index = 0;
var myGeo = new BMap.Geocoder();
var adds = [];
var names = [];
var myFile;
function change() {
console.log("a");
var adds = document.getElementById("chi").value.split(',');
for (i in adds) {
geocodeSearch("", adds[i], 1)
}
}; function bdGEO(flag) {
for (var i = 0; i < adds.length; i++) {
var name = names[i];
var add = adds[i];
geocodeSearch(name, add, flag);
}
}
function geocodeSearch(name, add, flag) {
console.log(add);
myGeo.getPoint(add, function (point) {
if (point) {
var address = new BMap.Point(point.lng, point.lat);
addMarker(address, new BMap.Label(name + "\n" + add, { offset: new BMap.Size(20, -10) }), flag);
}
}, "武汉市");
} function getMyIcon(flag) {
var path = "http://api.map.baidu.com/img/markers.png";
var p;
if (flag == 0)
p = {
offset: new BMap.Size(10, 25), // 指定定位位置 imageOffset: new BMap.Size(0, -275) // 设置图片偏移
};
else if (flag == 1)
p = {
offset: new BMap.Size(10, 25), // 指定定位位置 imageOffset: new BMap.Size(0, -300) // 设置图片偏移
}; return myIcon = new BMap.Icon(path, new BMap.Size(20, 25), p); }
// 编写自定义函数,创建标注
function addMarker(point, label, flag) {
var marker = new BMap.Marker(point, { icon: getMyIcon(flag) });
map.addOverlay(marker);
marker.setLabel(label);
} (function () {
var app = angular.module('myApp', []);
app.controller('MyController', ['$scope', myController]); var excelJsonObj = [];
function myController($scope) {
$scope.uploadExcel = function () {
myFile = document.getElementById('file');
var input = myFile;
var reader = new FileReader();
reader.onload = function () {
var fileData = reader.result;
var workbook = XLSX.read(fileData, { type: 'binary' }); // 表格的表格范围,可用于判断表头是否数量是否正确
var fromTo = '';
var sheet0 = workbook.Sheets[workbook.SheetNames[0]];//sheet0代表excel表格中的第一页
var str = XLSX.utils.sheet_to_json(sheet0);//利用接口实现转换。
names = [];
adds = [];
for (var i in str) {
names.push(str[i].__EMPTY_1);
adds.push(str[i].__EMPTY_3);
}
bdGEO(0); };
//获取地图上所有的覆盖物
var allOverlay = map.getOverlays();
for (var i = 1; i < allOverlay.length; i++) {
if (allOverlay[i].toString() == "[object Marker]") {
// if (allOverlay[i].getPosition().lng == longitude(待删除标注的经度) && allOverlay[i].getPosition().lat == latitude(待删除标注纬度)) {
// map.removeOverlay(allOverlay[i]);
// }
map.removeOverlay(allOverlay[i]);
console.log(allOverlay[i]);
}
}
if (document.getElementById("chi").value != "") {
change();
}
if (myFile.value != "")
reader.readAsBinaryString(input.files[0]); };
}
})(); var comAddr = new BMap.Point(114.413121, 30.480956);
var label = new BMap.Label("公司地址", { offset: new BMap.Size(20, -10) });
label.setStyle({
color: "#f11",
borderColor: "#000",
backgroundColor: "#aaa"
});
addMarker(comAddr, label, 1);

附上源码下载地址:(含通讯录模板)

https://download.csdn.net/download/qq_38415250/11239541

转载请注明出处。

基于百度地图JavaScript API,员工住址统计的更多相关文章

  1. 百度地图JavaScript API覆盖物旋转时出现偏移

    在项目中,调用百度地图JavaScript API,做覆盖物的旋转再添加到地图上,结果出现偏移了. 调试过程中的效果图: 发现图片的旋转并不是按车子的中心来的,而是之外的一个点.最后发现犯了一个很细节 ...

  2. 百度地图JavaScript API使用

    最近在完成优达学城前端开发(入门)课程的P4项目中,要求调用google地图进行交互,项目已提供部分js代码和html代码.但在申请google地图API密钥时由于网络等原因,打不开或者连接超时,所以 ...

  3. 百度地图JavaScript API经纬度查询-MAP

    百度地图JavaScript API经纬度查询-MAP-ABCDEFGHIJKMHNOPQRSTUVWXYZ: 搜索:<input type="text" size=&quo ...

  4. 【百度地图JavaScript API】手机端浏览器定位的实现

    [百度地图JavaScript API]手机端浏览器定位的实现 https://blog.csdn.net/xiao190128/article/details/72579476

  5. 百度地图 Javascript API 笔记

    因为最近的一个项目用到,所以自己整理了一下遇到的一些坑 自己写了一个类库来二次封装用于调起常用的功能:https://github.com/iRuxu/iBMap 快速文档链接 Javascript ...

  6. 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题

    项目中,需求:在百度地图上实时画出车辆,并能点击车辆弹出信息框查看实时信息. 实现:通过不停的画覆盖物并删除掉.点击覆盖物时弹出信息窗口. 问题:删除掉覆盖物后信息窗也删除掉了.因为信息窗是建立在覆盖 ...

  7. 百度地图JavaScript API本地搜索的结果面板

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  8. 百度地图 JavaScript API

    最近有点懒  项目结尾了  完了好长时间 没有去总结项目中的问题 想了下还是写写吧 这是一个关于百度地图的 网页展示 <!DOCTYPE html><html><head ...

  9. 百度地图JavaScript API获取用户当前经纬度和详细地理位置,反之通过详细地理位置获取当前经纬度

    前言: 前端时间刚好使用了百度地图的js api定位获取用户当前经纬度并获取当前详细位置和通过当前用户详细地理位置换取用户当前经纬度坐标的功能,为了方便下次找起来方便一些自己在这里记录一下,希望也能够 ...

随机推荐

  1. CentOS6.7编译安装mysql5.5(详解编译选项)

    注意!  mysql5.5之前一般都是用make编译 mysql5.5 -5.6 一般都是用cmake编译 cmake : 跨平台编译器, mysql官方提供的rpm包 mysql-client :提 ...

  2. Python实现斐波那契数列,九九乘法表,金字塔方法。

    斐波那契数列普通函数实现 #普通函数 def fb(max): a,b=0,1 while a<max: print(a) a,b=b,a+b fb(100) 递归实现方法1 def fb1(m ...

  3. 火车头data下任务文件夹的SpiderResult.db3文件用什么软件打开

    火车头采集器默认是用sqlite数据库来保存数据的,新建一个采集,打开data/任务/发现有一个SpiderResult.db3文件,.db3是sqlite的存储文件后缀,那么要如何查看这些文件呢?用 ...

  4. SpringBoot中使用Maven插件,上传docker镜像

    开启docker远程端口 我上一篇里面写了,这里暴露的路径: 18.16.202.95:2375 简单构建 配置pom.xml文件 在properties中增加一行指定远程主机的位置 <prop ...

  5. ant design pro 的modal

    通常弹框位置有限,如果一行不下,就拆成两行,例如Table

  6. Python——IO多路复用之select模块epoll方法

    Python——IO多路复用之select模块epoll方法 使用epoll方法实现IO多路复用,使用方法基本与poll方法一致,epoll效率要高于select和poll. .├── epoll_c ...

  7. 回溯法 | 图的m着色问题

    学习链接:算法 图的M着色问题 虽然今早9点才醒来,10点才来教室,但是coding得很高效.吃个早餐,拉个粑粑的时间,就把算法书上的[图的m着色]问题看明白了,大脑里也形成了解决问题的框架. 其实这 ...

  8. 洛谷P2341 [HAOI2006]受欢迎的牛|【模板】强连通分量

    https://www.luogu.org/problem/P2341 缩点之后唯一 一个出度为0的点 #include<cstdio> #include<iostream> ...

  9. 内置函数、反射、__str__、__del__、元类

    一.内置函数的补充 isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo: pass obj=Foo() print(isinstance(obj,Foo) ...

  10. java 动态数组

    package testjavapro; import java.util.*; public class testjava { public static void main(String args ...