├── .browserslistrc
├── .gitignore
├── README.md
├── babel.config.js
├── custom_components
└── ha-baidu-map
│ ├── __init__.py
│ ├── dist
│ ├── css
│ │ ├── app.50c5513d.css
│ │ └── chunk-vendors.6a85daba.css
│ ├── favicon.ico
│ ├── img
│ │ ├── home.png
│ │ ├── icons
│ │ │ ├── android-chrome-192x192.png
│ │ │ ├── android-chrome-512x512.png
│ │ │ ├── apple-touch-icon-120x120.png
│ │ │ ├── apple-touch-icon-152x152.png
│ │ │ ├── apple-touch-icon-180x180.png
│ │ │ ├── apple-touch-icon-60x60.png
│ │ │ ├── apple-touch-icon-76x76.png
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── msapplication-icon-144x144.png
│ │ │ ├── mstile-150x150.png
│ │ │ └── safari-pinned-tab.svg
│ │ └── my.png
│ ├── index.html
│ ├── js
│ │ ├── NoSleep.min.js
│ │ ├── app.5f7fe2b6.js
│ │ ├── chunk-2d2295d7.2dbc5a87.js
│ │ └── chunk-vendors.e05899bb.js
│ ├── manifest.json
│ ├── precache-manifest.762d28af755e2375f9197589e2d4ee59.js
│ ├── robots.txt
│ └── service-worker.js
│ └── manifest.json
├── dist
├── baidu-map.js
├── config.json
├── css
│ ├── app.50c5513d.css
│ └── chunk-vendors.e2e2feb5.css
├── favicon.ico
├── img
│ ├── home.png
│ ├── icons
│ │ ├── android-chrome-192x192.png
│ │ ├── android-chrome-512x512.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-152x152.png
│ │ ├── apple-touch-icon-180x180.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-76x76.png
│ │ ├── apple-touch-icon.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── msapplication-icon-144x144.png
│ │ ├── mstile-150x150.png
│ │ └── safari-pinned-tab.svg
│ └── my.png
├── index.html
├── js
│ ├── NoSleep.min.js
│ ├── app.9ceacd07.js
│ ├── chunk-2d2295d7.1c08ca79.js
│ └── chunk-vendors.064fc1a5.js
├── manifest.json
├── precache-manifest.16ee1e19229ecb83b12bc4ee7d0a0b22.js
├── robots.txt
└── service-worker.js
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
├── favicon.ico
├── img
│ ├── home.png
│ ├── icons
│ │ ├── android-chrome-192x192.png
│ │ ├── android-chrome-512x512.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-152x152.png
│ │ ├── apple-touch-icon-180x180.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-76x76.png
│ │ ├── apple-touch-icon.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── msapplication-icon-144x144.png
│ │ ├── mstile-150x150.png
│ │ └── safari-pinned-tab.svg
│ └── my.png
├── index.html
├── js
│ └── NoSleep.min.js
├── manifest.json
└── robots.txt
├── screenshots
├── 1.png
└── 2.png
├── src
├── App.vue
├── assets
│ └── logo.png
├── components
│ ├── GPSLogger.vue
│ ├── LogInfo.vue
│ └── MyOverlay.vue
├── main.js
├── registerServiceWorker.js
├── router.js
└── views
│ └── Home.vue
└── vue.config.js
/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 |
4 | # local env files
5 | .env.local
6 | .env.*.local
7 |
8 | # Log files
9 | npm-debug.log*
10 | yarn-debug.log*
11 | yarn-error.log*
12 |
13 | # Editor directories and files
14 | .idea
15 | .vscode
16 | *.suo
17 | *.ntvs*
18 | *.njsproj
19 | *.sln
20 | *.sw?
21 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 百度地图HASS插件
2 |
3 | 实现了位置查看功能
4 |
5 | > dist:对应的www下自定义的静态网页文件
6 |
7 | ## 如何使用
8 |
9 | > 安装
10 |
11 | 1.(建议)使用[HACS安装](https://github.com/custom-components/hacs)
12 |
13 | 在HACS里输入:https://github.com/shaonianzhentan/ha-baidu-map 即可安装成功(类型选择Integration)
14 |
15 | 2.自定义安装
16 |
17 | 将本项目custom_components里的内容,放到HASS的custom_components文件夹中
18 |
19 | > 后台插件配置
20 |
21 | 然后在configuration.yaml中配置以下内容
22 | ```
23 | ha-baidu-map:
24 |
25 | ```
26 |
27 | # 请一定要在HomeAssistant里使用,不然没啥用
28 |
29 | ## 界面欣赏
30 |
31 | #### 选择设备
32 | 
33 |
34 | #### 设置定位Webhook
35 | 
36 |
37 |
38 | ## 功能
39 |
40 | - 查看位置
41 |
42 | ## 更新说明
43 |
44 | ### V1.0.0(2019.10.12)
45 | - 全新配置,安装更简单
46 | - 删除定位相关功能
47 |
48 | ### V0.1.1(2019.07.10)
49 | - 在上报位置信息时,带上了手机电量信息
50 | - 修复了百度定位不准的问题,换成了GPS定位
51 |
52 | ### V0.1.0(2019.07.09)
53 | - 加入百度定位功能
54 | - 加入GPSLogger设置,可以上报位置了
55 |
56 | ### V0.0.1(2019.07.07)
57 | - 初始化项目
58 |
59 | ## 其他说明
60 |
61 | - 并没有全面测试,所以可能有BUG
62 | - 如有问题请直接在 Issues 中提,或者您发现问题并有非常好的解决方案,欢迎 PR
63 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/__init__.py:
--------------------------------------------------------------------------------
1 | import json
2 | import os
3 | import logging
4 | import voluptuous as vol
5 | import requests
6 | import time
7 |
8 | from homeassistant.helpers import config_validation as cv
9 | from homeassistant.helpers.event import track_time_interval
10 | from homeassistant.components.http import HomeAssistantView
11 | from aiohttp import web
12 | from aiohttp.web import FileResponse
13 | from typing import Optional
14 | from datetime import timedelta
15 | from homeassistant.helpers.state import AsyncTrackStates
16 | from urllib.request import urlopen
17 |
18 | _LOGGER = logging.getLogger(__name__)
19 | # 日志记录
20 | _DEBUG = False
21 |
22 |
23 | def _log(*arg):
24 | if _DEBUG:
25 | _LOGGER.info(*arg)
26 |
27 |
28 | DOMAIN = 'ha-baidu-map'
29 | _DOMAIN = DOMAIN.replace('-', '_')
30 |
31 | _hass = None
32 |
33 | #
34 | # 读取所有静态文件
35 | #
36 | #
37 | allpath = []
38 | allname = []
39 |
40 |
41 | def getallfile(path):
42 | allfilelist = os.listdir(path)
43 | # 遍历该文件夹下的所有目录或者文件
44 | for file in allfilelist:
45 | filepath = os.path.join(path, file)
46 | # 如果是文件夹,递归调用函数
47 | if os.path.isdir(filepath):
48 | getallfile(filepath)
49 | # 如果不是文件夹,保存文件路径及文件名
50 | elif os.path.isfile(filepath):
51 | allpath.append(filepath)
52 | allname.append(file)
53 | return allpath, allname
54 |
55 |
56 | __dirname = os.path.dirname(__file__)
57 | files, names = getallfile(__dirname+'/dist')
58 |
59 | extra_urls = []
60 | for file in files:
61 | extra_urls.append(
62 | '/' + DOMAIN + file.replace(__dirname, '').replace('\\', '/'))
63 |
64 | # 网关控制
65 |
66 |
67 | class HassGateView(HomeAssistantView):
68 | """View to handle Configuration requests."""
69 |
70 | url = '/' + DOMAIN
71 | name = DOMAIN
72 | extra_urls = extra_urls
73 | requires_auth = False
74 |
75 | async def get(self, request):
76 | # _LOGGER.info(request.rel_url.raw_path)
77 | return FileResponse(os.path.dirname(__file__) + request.rel_url.raw_path.replace(self.url, ''))
78 |
79 | async def post(self, request):
80 | """Update state of entity."""
81 | response = await request.json()
82 | return self.json(response)
83 |
84 |
85 | # 安装
86 | def setup(hass, config):
87 | _LOGGER.info('''
88 | -------------------------------------------------------------------
89 | ha-baidu-map百度地图插件【作者QQ:635147515】
90 |
91 | 版本:1.0.0
92 |
93 | 这是一个百度地图的HomeAssistant插件
94 |
95 | https://github.com/shaonianzhentan/ha-baidu-map
96 | -------------------------------------------------------------------''')
97 | global _hass
98 | _hass = hass
99 | _hass.http.register_view(HassGateView)
100 | # 添加到侧边栏
101 | hass.components.frontend.async_register_built_in_panel(
102 | "iframe",
103 | "百度地图",
104 | "mdi:map-marker",
105 | _DOMAIN,
106 | {"url": "/"+DOMAIN+"/dist/index.html"},
107 | require_admin=True,
108 | )
109 | return True
110 |
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/css/app.50c5513d.css:
--------------------------------------------------------------------------------
1 | ul{list-style:none;padding:0;margin:0}.BMap_Marker img:not([src*="./img/home.png"]){width:100%;border-radius:50%;background:#fff;border:1px solid #03a9f4!important}
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/favicon.ico
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/home.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/android-chrome-192x192.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/android-chrome-512x512.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-120x120.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-152x152.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-180x180.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-60x60.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon-76x76.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/apple-touch-icon.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/msapplication-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/msapplication-icon-144x144.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/icons/mstile-150x150.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/icons/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
150 |
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/img/my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/custom_components/ha-baidu-map/dist/img/my.png
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/index.html:
--------------------------------------------------------------------------------
1 |
百度地图
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/js/NoSleep.min.js:
--------------------------------------------------------------------------------
1 | /*! NoSleep.min.js v0.9.0 - git.io/vfn01 - Rich Tibbett - MIT license */
2 | !function(A,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.NoSleep=e():A.NoSleep=e()}("undefined"!=typeof self?self:this,function(){return function(A){function e(B){if(o[B])return o[B].exports;var Q=o[B]={i:B,l:!1,exports:{}};return A[B].call(Q.exports,Q,Q.exports,e),Q.l=!0,Q.exports}var o={};return e.m=A,e.c=o,e.d=function(A,o,B){e.o(A,o)||Object.defineProperty(A,o,{configurable:!1,enumerable:!0,get:B})},e.n=function(A){var o=A&&A.__esModule?function(){return A.default}:function(){return A};return e.d(o,"a",o),o},e.o=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},e.p="",e(e.s=0)}([function(A,e,o){"use strict";function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}var Q=function(){function A(A,e){for(var o=0;o.5&&(e.noSleepVideo.currentTime=Math.random())})}))}return Q(A,[{key:"_addSourceToVideo",value:function(A,e,o){var B=document.createElement("source");B.src=o,B.type="video/"+e,A.appendChild(B)}},{key:"enable",value:function(){E?(this.disable(),console.warn("\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n "),this.noSleepTimer=window.setInterval(function(){document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){E?this.noSleepTimer&&(console.warn("\n NoSleep now disabled for older iOS devices.\n "),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),A}();A.exports=l},function(A,e,o){"use strict";A.exports={webm:"data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvOBCEKCQAR3ZWJtQoeBAkKFgQIYU4BnQI0VSalmQCgq17FAAw9CQE2AQAZ3aGFtbXlXQUAGd2hhbW15RIlACECPQAAAAAAAFlSua0AxrkAu14EBY8WBAZyBACK1nEADdW5khkAFVl9WUDglhohAA1ZQOIOBAeBABrCBCLqBCB9DtnVAIueBAKNAHIEAAIAwAQCdASoIAAgAAUAmJaQAA3AA/vz0AAA=",mp4:"data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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"}}])});
--------------------------------------------------------------------------------
/custom_components/ha-baidu-map/dist/js/app.5f7fe2b6.js:
--------------------------------------------------------------------------------
1 | (function(t){function e(e){for(var o,a,c=e[0],l=e[1],s=e[2],u=0,f=[];u1&&void 0!==c[1]?c[1]:{},r=null,"string"!==typeof e){t.next=16;break}if(a=null,"GPSLogger"!==e){t.next=8;break}return t.next=7,n.e("chunk-2d2295d7").then(n.bind(null,"dcac"));case 7:a=t.sent;case 8:if(null===a){t.next=12;break}r=i["a"].extend(a.default),t.next=14;break;case 12:return console.error("组件未定义"),t.abrupt("return");case 14:t.next=17;break;case 16:r=i["a"].extend(e);case 17:return t.abrupt("return",new Promise(function(t,e){var n=new r({router:f,propsData:o}).$mount(document.createElement("div"));n.$on("done",function(e){return t(e)})}));case 18:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),new i["a"]({router:f,render:function(t){return t(u)}}).$mount("#app")},"5c48":function(t,e,n){},7237:function(t,e,n){"use strict";var o=n("0672"),i=n.n(o);i.a},"7c55":function(t,e,n){"use strict";var o=n("5c48"),i=n.n(o);i.a},bb51:function(t,e,n){"use strict";n.r(e);var o=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticStyle:{height:"100vh","z-index":"1000",position:"fixed",top:"0",left:"0",width:"100%"}},[n("baidu-map",{staticStyle:{height:"100vh",position:"fixed",top:"0",left:"0",width:"100%"},attrs:{center:t.center,zoom:t.zoom,"scroll-wheel-zoom":!0},on:{ready:t.ready}},[n("bm-navigation",{attrs:{anchor:"BMAP_ANCHOR_TOP_RIGHT"}}),n("bm-map-type",{attrs:{"map-types":["BMAP_NORMAL_MAP","BMAP_HYBRID_MAP"],anchor:"BMAP_ANCHOR_TOP_LEFT"}}),n("bm-control",[n("div",{staticStyle:{padding:"10px","margin-top":"30px"}},[n("mu-button",{attrs:{small:""},on:{click:function(e){t.open=!0}}},[t._v("更多功能")]),n("mu-bottom-sheet",{attrs:{open:t.open},on:{"update:open":function(e){t.open=e}}},[n("mu-list",[n("mu-sub-header",[t._v("选择监测设备")]),t._l(t.allList,function(e,o){return n("mu-list-item",{key:o,attrs:{button:""},on:{click:function(n){return t.selectDevice(e)}}},[n("mu-list-item-action",[n("mu-icon",{attrs:{value:"location_on",color:"blue"}})],1),n("mu-list-item-title",[t._v(t._s(e.title))])],1)})],2)],1)],1)]),t._l(t.zoneList,function(e,o){return[n("bm-circle",{key:o,attrs:{center:e.location,radius:100,"stroke-color":"#0f67b1","stroke-opacity":.5,"stroke-weight":2}}),n("my-overlay",{key:"zone"+o,attrs:{icon:{url:e.icon,size:{width:50,height:50},opts:{imageSize:{width:50,height:50}}},position:e.location}},[n("b",[t._v(t._s(e.title))]),n("br"),n("ul",{staticClass:"list-info"},[n("li",[t._v("\n 经度:\n "),n("span",[t._v(t._s(e.location.lng))])]),n("li",[t._v("\n 纬度:\n "),n("span",[t._v(t._s(e.location.lat))])])])])]}),t._l(t.deviceList,function(e,o){return[n("bm-circle",{key:"device-round"+o,attrs:{center:e.location,radius:30,"stroke-color":"blue","stroke-opacity":.5,"stroke-weight":2}}),n("my-overlay",{key:"device"+o,attrs:{icon:{url:e.icon,size:{width:50,height:50},opts:{imageSize:{width:50,height:50}}},position:e.location,animation:"BMAP_ANIMATION_BOUNCE"}},[n("b",[t._v(t._s(e.title))]),n("br"),n("ul",{staticClass:"list-info"},[n("li",[t._v("\n 经度:\n "),n("span",[t._v(t._s(e.location.lng))])]),n("li",[t._v("\n 纬度:\n "),n("span",[t._v(t._s(e.location.lat))])]),t._l(e.range,function(e,o){return n("li",{key:o},[t._v("\n 距离\n "),n("b",{staticStyle:{color:"orange"}},[t._v(t._s(e.zone))]),n("span",[t._v(t._s(e.mi)+"米")])])})],2)])]})],2),n("LogInfo",{ref:"LogInfo"})],1)},i=[],r=(n("96cf"),n("3b8d")),a=(n("ac4d"),n("8a81"),n("6c7b"),n("ac6a"),n("75fc")),c=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("bm-marker",t._b({attrs:{dragging:!1},on:{click:t.infoWindowOpen}},"bm-marker",t.$attrs,!1),[n("bm-info-window",{attrs:{show:t.show},on:{close:t.infoWindowClose,open:t.infoWindowOpen}},[t._t("default")],2)],1)},l=[],s={data:function(){return{show:!1}},methods:{infoWindowOpen:function(){this.show=!0},infoWindowClose:function(){this.show=!1}}},u=s,d=(n("7237"),n("2877")),f=Object(d["a"])(u,c,l,!1,null,null,null),p=f.exports,h=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("mu-dialog",{attrs:{"full-width":"",transition:"slide-bottom",fullscreen:"",scrollable:"",open:t.openScroll},on:{"update:open":function(e){t.openScroll=e}}},[n("mu-appbar",{attrs:{color:"primary",title:"GPSLogger定位日志"}},[n("mu-button",{attrs:{slot:"left",icon:""},on:{click:t.close},slot:"left"},[n("mu-icon",{attrs:{value:"close"}})],1)],1),n("div",{staticStyle:{padding:"24px"}},[n("mu-text-field",{attrs:{readonly:"","multi-line":"",rows:15,"full-width":""},model:{value:t.log,callback:function(e){t.log=e},expression:"log"}})],1)],1)},g=[],v={data:function(){return{openScroll:!1,log:""}},methods:{show:function(){this.openScroll=!0},add:function(t){this.log="".concat((new Date).toLocaleString(),"\n").concat(t,"\n ").concat(this.log)},close:function(){this.openScroll=!1}}},m=v,w=Object(d["a"])(m,h,g,!1,null,null,null),b=w.exports,y={components:{MyOverlay:p,LogInfo:b},data:function(){return{open:!1,zoom:18,zoneList:[],deviceList:[],allList:[],center:{lng:121.848405,lat:31.739856},isStartLocation:!1,isSendLocation:!1}},created:function(){this.allList=[].concat(Object(a["a"])(this.deviceList),Object(a["a"])(this.zoneList))},methods:{ready:function(t){var e=this,n=t.map;t.BMap;window.hassMap.hass.then(function(t){var o=[],i=[];t.zoneList.forEach(function(t){var n=t.entity.attributes;o.push({title:t.title,location:{lng:n.longitude,lat:n.latitude},icon:"./img/home.png"}),i.push(new window.BMap.Point(n.longitude,n.latitude)),e.center={lng:n.longitude,lat:n.latitude}});var r=[];t.deviceList.forEach(function(t){var n=t.entity.attributes,o=e.getTextImage(t.title);r.push({title:t.title,location:{lng:n.longitude,lat:n.latitude},icon:n.picture||o,range:[]}),i.push(new window.BMap.Point(n.longitude,n.latitude))});var a=new window.BMap.Convertor;a.translate(i,0,5,function(t){if(0===t.status){t.points.forEach(function(t,n){n>=o.length?r[n-o.length].location={lng:t.lng,lat:t.lat}:(o[n].location={lng:t.lng,lat:t.lat},e.center={lng:t.lng,lat:t.lat})});for(var i=0,a=r;i
2 |
4 |
150 |
--------------------------------------------------------------------------------
/dist/img/my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/dist/img/my.png
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 | 百度地图
--------------------------------------------------------------------------------
/dist/js/NoSleep.min.js:
--------------------------------------------------------------------------------
1 | /*! NoSleep.min.js v0.9.0 - git.io/vfn01 - Rich Tibbett - MIT license */
2 | !function(A,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.NoSleep=e():A.NoSleep=e()}("undefined"!=typeof self?self:this,function(){return function(A){function e(B){if(o[B])return o[B].exports;var Q=o[B]={i:B,l:!1,exports:{}};return A[B].call(Q.exports,Q,Q.exports,e),Q.l=!0,Q.exports}var o={};return e.m=A,e.c=o,e.d=function(A,o,B){e.o(A,o)||Object.defineProperty(A,o,{configurable:!1,enumerable:!0,get:B})},e.n=function(A){var o=A&&A.__esModule?function(){return A.default}:function(){return A};return e.d(o,"a",o),o},e.o=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},e.p="",e(e.s=0)}([function(A,e,o){"use strict";function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}var Q=function(){function A(A,e){for(var o=0;o.5&&(e.noSleepVideo.currentTime=Math.random())})}))}return Q(A,[{key:"_addSourceToVideo",value:function(A,e,o){var B=document.createElement("source");B.src=o,B.type="video/"+e,A.appendChild(B)}},{key:"enable",value:function(){E?(this.disable(),console.warn("\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n "),this.noSleepTimer=window.setInterval(function(){document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){E?this.noSleepTimer&&(console.warn("\n NoSleep now disabled for older iOS devices.\n "),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),A}();A.exports=l},function(A,e,o){"use strict";A.exports={webm:"data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvOBCEKCQAR3ZWJtQoeBAkKFgQIYU4BnQI0VSalmQCgq17FAAw9CQE2AQAZ3aGFtbXlXQUAGd2hhbW15RIlACECPQAAAAAAAFlSua0AxrkAu14EBY8WBAZyBACK1nEADdW5khkAFVl9WUDglhohAA1ZQOIOBAeBABrCBCLqBCB9DtnVAIueBAKNAHIEAAIAwAQCdASoIAAgAAUAmJaQAA3AA/vz0AAA=",mp4:"data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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"}}])});
--------------------------------------------------------------------------------
/dist/js/app.9ceacd07.js:
--------------------------------------------------------------------------------
1 | (function(t){function e(e){for(var o,a,c=e[0],l=e[1],s=e[2],u=0,d=[];u1&&void 0!==c[1]?c[1]:{},r=null,"string"!==typeof e){t.next=16;break}if(a=null,"GPSLogger"!==e){t.next=8;break}return t.next=7,n.e("chunk-2d2295d7").then(n.bind(null,"dcac"));case 7:a=t.sent;case 8:if(null===a){t.next=12;break}r=i["a"].extend(a.default),t.next=14;break;case 12:return console.error("组件未定义"),t.abrupt("return");case 14:t.next=17;break;case 16:r=i["a"].extend(e);case 17:return t.abrupt("return",new Promise(function(t,e){var n=new r({router:d,propsData:o}).$mount(document.createElement("div"));n.$on("done",function(e){return t(e)})}));case 18:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),new i["a"]({router:d,render:function(t){return t(u)}}).$mount("#app")},7237:function(t,e,n){"use strict";var o=n("f8ca"),i=n.n(o);i.a},"7c55":function(t,e,n){"use strict";var o=n("3337"),i=n.n(o);i.a},bb51:function(t,e,n){"use strict";n.r(e);var o=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticStyle:{height:"100vh","z-index":"1000",position:"fixed",top:"0",left:"0",width:"100%"}},[n("baidu-map",{staticStyle:{height:"100vh",position:"fixed",top:"0",left:"0",width:"100%"},attrs:{center:t.center,zoom:t.zoom,"scroll-wheel-zoom":!0},on:{ready:t.ready}},[n("bm-navigation",{attrs:{anchor:"BMAP_ANCHOR_TOP_RIGHT"}}),n("bm-map-type",{attrs:{"map-types":["BMAP_NORMAL_MAP","BMAP_HYBRID_MAP"],anchor:"BMAP_ANCHOR_TOP_LEFT"}}),n("bm-control",[n("div",{staticStyle:{padding:"10px","margin-top":"30px"}},[n("mu-button",{attrs:{small:""},on:{click:function(e){t.open=!0}}},[t._v("更多功能")]),n("mu-bottom-sheet",{attrs:{open:t.open},on:{"update:open":function(e){t.open=e}}},[n("mu-list",[n("mu-sub-header",[t._v("选择监测设备")]),t._l(t.allList,function(e,o){return n("mu-list-item",{key:o,attrs:{button:""},on:{click:function(n){return t.selectDevice(e)}}},[n("mu-list-item-action",[n("mu-icon",{attrs:{value:"location_on",color:"blue"}})],1),n("mu-list-item-title",[t._v(t._s(e.title))])],1)})],2),n("mu-list",[n("mu-sub-header",[t._v("设置")]),n("mu-list-item",{attrs:{button:""},on:{click:t.gpsloggerClick}},[n("mu-list-item-action",[n("mu-icon",{attrs:{value:"settings",color:"green"}})],1),n("mu-list-item-title",[t._v("GPSLogger配置")])],1),n("mu-list-item",{attrs:{button:""},on:{click:t.logInfoClick}},[n("mu-list-item-action",[n("mu-icon",{attrs:{value:"settings",color:"green"}})],1),n("mu-list-item-title",[t._v("GPSLogger定位日志查看")])],1),n("mu-list-item",{attrs:{button:""},on:{click:t.homeClick}},[n("mu-list-item-action",[n("mu-icon",{attrs:{value:"home",color:"red"}})],1),n("mu-list-item-title",[t._v("回到首页")])],1)],1)],1)],1)]),t._l(t.zoneList,function(e,o){return[n("bm-circle",{key:o,attrs:{center:e.location,radius:100,"stroke-color":"#0f67b1","stroke-opacity":.5,"stroke-weight":2}}),n("my-overlay",{key:"zone"+o,attrs:{icon:{url:e.icon,size:{width:50,height:50},opts:{imageSize:{width:50,height:50}}},position:e.location}},[n("b",[t._v(t._s(e.title))]),n("br"),n("ul",{staticClass:"list-info"},[n("li",[t._v("\n 经度:\n "),n("span",[t._v(t._s(e.location.lng))])]),n("li",[t._v("\n 纬度:\n "),n("span",[t._v(t._s(e.location.lat))])])])])]}),t._l(t.deviceList,function(e,o){return[n("bm-circle",{key:"device-round"+o,attrs:{center:e.location,radius:30,"stroke-color":"blue","stroke-opacity":.5,"stroke-weight":2}}),n("my-overlay",{key:"device"+o,attrs:{icon:{url:e.icon,size:{width:50,height:50},opts:{imageSize:{width:50,height:50}}},position:e.location,animation:"BMAP_ANIMATION_BOUNCE"}},[n("b",[t._v(t._s(e.title))]),n("br"),n("ul",{staticClass:"list-info"},[n("li",[t._v("\n 经度:\n "),n("span",[t._v(t._s(e.location.lng))])]),n("li",[t._v("\n 纬度:\n "),n("span",[t._v(t._s(e.location.lat))])]),t._l(e.range,function(e,o){return n("li",{key:o},[t._v("\n 距离\n "),n("b",{staticStyle:{color:"orange"}},[t._v(t._s(e.zone))]),n("span",[t._v(t._s(e.mi)+"米")])])})],2)])]}),n("bm-geolocation",{attrs:{anchor:"BMAP_ANCHOR_BOTTOM_RIGHT",showAddressBar:!0,autoLocation:!0},on:{locationSuccess:t.locationSuccess,locationError:t.locationError}})],2),n("LogInfo",{ref:"LogInfo"})],1)},i=[],r=(n("4453"),n("5605")),a=(n("0eb5"),n("a4c5"),n("1c74"),n("f763"),n("41c4")),c=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("bm-marker",t._b({attrs:{dragging:!1},on:{click:t.infoWindowOpen}},"bm-marker",t.$attrs,!1),[n("bm-info-window",{attrs:{show:t.show},on:{close:t.infoWindowClose,open:t.infoWindowOpen}},[t._t("default")],2)],1)},l=[],s={data:function(){return{show:!1}},methods:{infoWindowOpen:function(){this.show=!0},infoWindowClose:function(){this.show=!1}}},u=s,f=(n("7237"),n("17cc")),d=Object(f["a"])(u,c,l,!1,null,null,null),p=d.exports,h=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("mu-dialog",{attrs:{"full-width":"",transition:"slide-bottom",fullscreen:"",scrollable:"",open:t.openScroll},on:{"update:open":function(e){t.openScroll=e}}},[n("mu-appbar",{attrs:{color:"primary",title:"GPSLogger定位日志"}},[n("mu-button",{attrs:{slot:"left",icon:""},on:{click:t.close},slot:"left"},[n("mu-icon",{attrs:{value:"close"}})],1)],1),n("div",{staticStyle:{padding:"24px"}},[n("mu-text-field",{attrs:{readonly:"","multi-line":"",rows:15,"full-width":""},model:{value:t.log,callback:function(e){t.log=e},expression:"log"}})],1)],1)},g=[],m={data:function(){return{openScroll:!1,log:""}},methods:{show:function(){this.openScroll=!0},add:function(t){this.log="".concat((new Date).toLocaleString(),"\n").concat(t,"\n ").concat(this.log)},close:function(){this.openScroll=!1}}},v=m,w=Object(f["a"])(v,h,g,!1,null,null,null),b=w.exports,y={components:{MyOverlay:p,LogInfo:b},data:function(){return{open:!1,zoom:18,zoneList:[{title:"家测试",location:{lng:121.34607502288814,lat:31.24192393278093},icon:"./img/home.png",range:[]}],deviceList:[{title:"我测试",location:{lng:121.34607502288814,lat:31.23192393278093},icon:"./img/my.png",range:[]}],allList:[],center:{lng:121.848405,lat:31.739856},isStartLocation:!1,isSendLocation:!1}},created:function(){this.allList=[].concat(Object(a["a"])(this.deviceList),Object(a["a"])(this.zoneList))},methods:{ready:function(t){var e=this,n=t.map;t.BMap;window.hassMap.hass.then(function(t){var o=[],i=[];t.zoneList.forEach(function(t){var n=t.entity.attributes;o.push({title:t.title,location:{lng:n.longitude,lat:n.latitude},icon:"./img/home.png"}),i.push(new window.BMap.Point(n.longitude,n.latitude)),e.center={lng:n.longitude,lat:n.latitude}});var r=[];t.deviceList.forEach(function(t){var n=t.entity.attributes,o=e.getTextImage(t.title);r.push({title:t.title,location:{lng:n.longitude,lat:n.latitude},icon:n.picture||o,range:[]}),i.push(new window.BMap.Point(n.longitude,n.latitude))});var a=new window.BMap.Convertor;a.translate(i,0,5,function(t){if(0===t.status){t.points.forEach(function(t,n){n>=o.length?r[n-o.length].location={lng:t.lng,lat:t.lat}:(o[n].location={lng:t.lng,lat:t.lat},e.center={lng:t.lng,lat:t.lat})});for(var i=0,a=r;i
2 |
4 |
150 |
--------------------------------------------------------------------------------
/public/img/my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/public/img/my.png
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 百度地图
9 |
10 |
11 |
12 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/public/js/NoSleep.min.js:
--------------------------------------------------------------------------------
1 | /*! NoSleep.min.js v0.9.0 - git.io/vfn01 - Rich Tibbett - MIT license */
2 | !function(A,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.NoSleep=e():A.NoSleep=e()}("undefined"!=typeof self?self:this,function(){return function(A){function e(B){if(o[B])return o[B].exports;var Q=o[B]={i:B,l:!1,exports:{}};return A[B].call(Q.exports,Q,Q.exports,e),Q.l=!0,Q.exports}var o={};return e.m=A,e.c=o,e.d=function(A,o,B){e.o(A,o)||Object.defineProperty(A,o,{configurable:!1,enumerable:!0,get:B})},e.n=function(A){var o=A&&A.__esModule?function(){return A.default}:function(){return A};return e.d(o,"a",o),o},e.o=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},e.p="",e(e.s=0)}([function(A,e,o){"use strict";function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}var Q=function(){function A(A,e){for(var o=0;o.5&&(e.noSleepVideo.currentTime=Math.random())})}))}return Q(A,[{key:"_addSourceToVideo",value:function(A,e,o){var B=document.createElement("source");B.src=o,B.type="video/"+e,A.appendChild(B)}},{key:"enable",value:function(){E?(this.disable(),console.warn("\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n "),this.noSleepTimer=window.setInterval(function(){document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){E?this.noSleepTimer&&(console.warn("\n NoSleep now disabled for older iOS devices.\n "),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),A}();A.exports=l},function(A,e,o){"use strict";A.exports={webm:"data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvOBCEKCQAR3ZWJtQoeBAkKFgQIYU4BnQI0VSalmQCgq17FAAw9CQE2AQAZ3aGFtbXlXQUAGd2hhbW15RIlACECPQAAAAAAAFlSua0AxrkAu14EBY8WBAZyBACK1nEADdW5khkAFVl9WUDglhohAA1ZQOIOBAeBABrCBCLqBCB9DtnVAIueBAKNAHIEAAIAwAQCdASoIAAgAAUAmJaQAA3AA/vz0AAA=",mp4:"data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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"}}])});
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "map",
3 | "short_name": "map",
4 | "icons": [
5 | {
6 | "src": "./img/icons/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "./img/icons/android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "start_url": "./index.html",
17 | "display": "standalone",
18 | "background_color": "#000000",
19 | "theme_color": "#4DBA87"
20 | }
21 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/screenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/screenshots/1.png
--------------------------------------------------------------------------------
/screenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/screenshots/2.png
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shaonianzhentan/ha-baidu-map/a93a097e2e49960e616f82cefc1934dc9b4ab38f/src/assets/logo.png
--------------------------------------------------------------------------------
/src/components/GPSLogger.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | 保存
12 |
13 |
14 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/src/components/LogInfo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/components/MyOverlay.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
26 |
27 |
39 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 | import router from './router'
4 | import './registerServiceWorker'
5 |
6 | Vue.config.productionTip = false
7 |
8 | import MuseUI from 'muse-ui';
9 | import 'muse-ui/dist/muse-ui.css';
10 | Vue.use(MuseUI);
11 |
12 | import Loading from 'muse-ui-loading';
13 | import 'muse-ui-loading/dist/muse-ui-loading.css';
14 | Vue.use(Loading);
15 |
16 | import Toast from 'muse-ui-toast';
17 | Vue.use(Toast);
18 |
19 | // 引入vue-amap
20 | import BaiduMap from 'vue-baidu-map';
21 | Vue.use(BaiduMap, {
22 | // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
23 | ak: 'hNT4WeW0AGvh2GuzuO92OfM6hCW25HhX',
24 | });
25 |
26 | top.document.body.style.overflow = 'hidden'
27 |
28 | window.noSleep = new NoSleep();
29 |
30 | window.hassMap = {
31 | get hass() {
32 | return new Promise(async (resolve, reject) => {
33 | const res = await top.window.hassConnection;
34 | if (res == null) {
35 | reject(new Error('请在Home Assistant中使用'));
36 | return;
37 | }
38 | const conn = res.conn;
39 | const zoneList = [];
40 | const deviceList = [];
41 | const ents = conn._ent.state;
42 | // 过滤所有媒体播放器
43 | Object.keys(ents).forEach((key) => {
44 | const entity = ents[key];
45 | if (key.indexOf('zone.') === 0) {
46 | const attr = entity.attributes;
47 | if (attr.latitude && attr.longitude) {
48 | zoneList.push({
49 | id: entity.entity_id,
50 | title: entity.attributes.friendly_name,
51 | entity,
52 | });
53 | }
54 | } else if (key.indexOf('device_tracker.') === 0) {
55 | const attr = entity.attributes;
56 | if (attr.latitude && attr.longitude) {
57 | deviceList.push({
58 | id: entity.entity_id,
59 | title: attr.friendly_name,
60 | entity,
61 | });
62 | }
63 | }
64 | });
65 | const o = Object.create(null);
66 | o.zoneList = zoneList;
67 | o.deviceList = deviceList;
68 | resolve(o);
69 | });
70 | },
71 | };
72 |
73 | //动态注册组件
74 | Vue.prototype.registeredComponent = async function (component, propsData = {}) {
75 | let _constructor = null
76 | if (typeof component === 'string') {
77 | let com = null
78 | //任务队列
79 | if (component === 'GPSLogger') com = await import('@/components/GPSLogger')
80 | if (com !== null) {
81 | _constructor = Vue.extend(com.default)
82 | }
83 | else {
84 | console.error('组件未定义')
85 | return
86 | }
87 | } else {
88 | _constructor = Vue.extend(component)
89 | }
90 |
91 | return new Promise((resolve, reject) => {
92 | let instance = new _constructor({
93 | router,
94 | propsData
95 | }).$mount(document.createElement('div'))
96 |
97 | instance.$on('done', data => resolve(data))
98 | })
99 |
100 | }
101 |
102 |
103 | new Vue({
104 | router,
105 | render: h => h(App)
106 | }).$mount('#app')
107 |
--------------------------------------------------------------------------------
/src/registerServiceWorker.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-console */
2 |
3 | import { register } from 'register-service-worker'
4 |
5 | if (process.env.NODE_ENV === 'production') {
6 | register(`${process.env.BASE_URL}service-worker.js`, {
7 | ready () {
8 | console.log(
9 | 'App is being served from cache by a service worker.\n' +
10 | 'For more details, visit https://goo.gl/AFskqB'
11 | )
12 | },
13 | registered () {
14 | console.log('Service worker has been registered.')
15 | },
16 | cached () {
17 | console.log('Content has been cached for offline use.')
18 | },
19 | updatefound () {
20 | console.log('New content is downloading.')
21 | },
22 | updated () {
23 | console.log('New content is available; please refresh.')
24 | },
25 | offline () {
26 | console.log('No internet connection found. App is running in offline mode.')
27 | },
28 | error (error) {
29 | console.error('Error during service worker registration:', error)
30 | }
31 | })
32 | }
33 |
--------------------------------------------------------------------------------
/src/router.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | import Home from './views/Home.vue'
4 |
5 | Vue.use(Router)
6 |
7 | export default new Router({
8 | routes: [
9 | {
10 | path: '/',
11 | name: 'home',
12 | component: () => import('./views/Home.vue')
13 | }
14 | ]
15 | })
16 |
--------------------------------------------------------------------------------
/src/views/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
15 |
16 |
17 | 更多功能
21 |
22 |
23 | 选择监测设备
24 |
30 |
31 |
35 |
36 | {{item.title}}
37 |
38 |
39 |
66 |
67 |
68 |
69 |
70 |
78 |
83 | {{item.title}}
84 |
85 |
86 | -
87 | 经度:
88 | {{item.location.lng}}
89 |
90 | -
91 | 纬度:
92 | {{item.location.lat}}
93 |
94 |
95 |
96 |
97 |
98 |
99 |
107 |
113 | {{item.title}}
114 |
115 |
116 | -
117 | 经度:
118 | {{item.location.lng}}
119 |
120 | -
121 | 纬度:
122 | {{item.location.lat}}
123 |
124 | -
128 | 距离
129 | {{r.zone}}
130 | {{r.mi}}米
131 |
132 |
133 |
134 |
135 |
136 |
143 |
144 |
145 |
146 |
147 |
148 |
451 |
--------------------------------------------------------------------------------
/vue.config.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = {
3 | publicPath: '',
4 | outputDir: './custom_components/ha-baidu-map/dist',
5 | productionSourceMap: process.env.NODE_ENV === 'production' ? false : true
6 | }
7 |
--------------------------------------------------------------------------------