From c433d8d07a2f372cc1b06fc3a9475a566f4076d4 Mon Sep 17 00:00:00 2001 From: Dash <389399428@qq.com> Date: Mon, 11 Sep 2017 22:35:11 +0800 Subject: [PATCH] finish the work of day21 --- 21 - Geolocation/README.md | 52 ++++++++++ 21 - Geolocation/effects.png | Bin 0 -> 49472 bytes 21 - Geolocation/index-finished-Dashrun.html | 100 +++++++++++++++++++ 21 - Geolocation/index-start.html | 63 ++++++++++++ README.md | 4 +- 5 files changed, 217 insertions(+), 2 deletions(-) create mode 100644 21 - Geolocation/README.md create mode 100644 21 - Geolocation/effects.png create mode 100644 21 - Geolocation/index-finished-Dashrun.html create mode 100644 21 - Geolocation/index-start.html diff --git a/21 - Geolocation/README.md b/21 - Geolocation/README.md new file mode 100644 index 0000000..c4f8b17 --- /dev/null +++ b/21 - Geolocation/README.md @@ -0,0 +1,52 @@ +# 21 Geolocation 中文指南 + +> 本篇作者:©[大史快跑Dashrun](https://github.com/dashrun)——Chinasoft Frontend Developer + +> 简介:[JavaScript30](https://javascript30.com) 是 [Wes Bos](https://github.com/wesbos) 推出的一个 30 天挑战。项目免费提供了 30 个视频教程、30 个挑战的起始文档和 30 个挑战解决方案源代码。目的是帮助人们用纯 JavaScript 来写东西,不借助框架和库,也不使用编译器和引用。现在你看到的是这系列指南的第 21 篇。完整指南在 [GitHub](https://github.com/soyaine/JavaScript30),喜欢请 Star 哦♪(^∇^*) + +> 创建时间:2017-09-08 +最后更新:2017-09-11 + +## 挑战任务 +本次的挑战任务,是利用浏览器内置`Web Geolocation API`,将获取到的地理位置及相关坐标,与`index-start.html`中的可视化指南针连接在一起。 + +## 实现效果 +![结果展示](https://github.com/dashrun/vanilla-javascript-30/blob/master/21%20-%20Geolocation/effects.png) +由于笔记本电脑一般不带速度及方向传感器,从结果中可以看到返回值中`heading`及`speed`键值均为`null`,为演示可视化效果,代码中采用手动赋值的方式进行演示。 + +## 相关知识 +1.有关地理位置接口`Geolocation`的说明,可查看[MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Geolocation)中的相关解释。 + +2.`getCurrentPosition()`方法和`watchPosition()`方法 +`getCurrentPosition()`方法在调用时返回一次相关信息,`watchPosition()`方法调用后将持续返回相关信息,两个方法调用时除了传入相关的回调函数外,还需要传入`options`配置对象作为第三参数,`options`相关键值如下: +- `enableHighAccuracy`参数表示是否高精度可用,为Boolean类型,默认为false,如果开启,响应时间会变慢,同时,在手机设备上会用掉更多的流量,也就是money了。 +- `timeout`参数表示等待响应的最大时间,默认是0毫秒,表示无穷时间。 +- `maximumAge`表示应用程序的缓存时间。单位毫秒,默认是0,意味着每次请求都是立即去获取一个全新的对象内容。 + +## 过程指南 +1.使用`getCurrentPosition()`方法获得相关信息 +```js + if(navigator.geolocation){ + navigator.geolocation.getCurrentPosition(success, error, options); + }else{ + console.log('Your broswer does not support the Geolocation API'); + } +``` +2.当成功返回结果时,在控制台输出结果,并根据结果对相应的DOM元素进行样式调整 +```js +function success(pos) { + console.log(pos); + var crd = pos.coords; + console.log('Your current position is:'); + console.log('Latitude : ' + crd.latitude); + console.log('Longitude: ' + crd.longitude); + console.log('More or less ' + crd.accuracy + ' meters.'); + + //改变传感器速度值和罗盘的指向 + speed.innerHTML = crd.speed; + arrow.style.transform = `rotate(${crd.heading}deg)`; + +}; +``` + + diff --git a/21 - Geolocation/effects.png b/21 - Geolocation/effects.png new file mode 100644 index 0000000000000000000000000000000000000000..c06ca860f134779b7760500ea6dcf09e4747b07a GIT binary patch literal 49472 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

`Em8NL# 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 ZA^8=1`No^~mw#rLX2xKn5(AHz{{teyUc&$Y literal 0 HcmV?d00001 diff --git a/21 - Geolocation/index-finished-Dashrun.html b/21 - Geolocation/index-finished-Dashrun.html new file mode 100644 index 0000000..86ebe3b --- /dev/null +++ b/21 - Geolocation/index-finished-Dashrun.html @@ -0,0 +1,100 @@ + + + + + Document + + + + + + +

+ 0 + KM/H +

+ + + + + diff --git a/21 - Geolocation/index-start.html b/21 - Geolocation/index-start.html new file mode 100644 index 0000000..f3ed587 --- /dev/null +++ b/21 - Geolocation/index-start.html @@ -0,0 +1,63 @@ + + + + + Document + + + + + + +

+ 0 + KM/H +

+ + + + + diff --git a/README.md b/README.md index 99dd30d..fb83287 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ No | Guide | Demo 17 | [Sort Without Articles 指南](https://github.com/soyaine/JavaScript30/blob/master/17%20-%20Sort%20Without%20Articles/README.md) | [去前缀排序在线效果](https://soyaine.github.io/JavaScript30/17%20-%20Sort%20Without%20Articles/index-finished-Dashrun-es5.html) 18 | [Adding Up Times with Reduce 指南](https://github.com/soyaine/JavaScript30/tree/master/18%20-%20AddingUpTimesWithReduce) | [使用 Reduce 进行时间叠加效果](https://soyaine.github.io/JavaScript30/18%20-%20AddingUpTimesWithReduce/index-finished-Dashrun-es6.html) 19 | [Webcam Fun 指南](https://github.com/soyaine/JavaScript30/blob/master/19%20-%20Webcam%20Fun/README.md) | [网络摄像头及图片处理在线效果](https://github.com/soyaine/JavaScript30/blob/master/19%20-%20Webcam%20Fun/index-finished-Dashrun.html) -20 | Speech Detection | - +20 | [Speech Detection指南](https://github.com/soyaine/JavaScript30/blob/master/20%20-%20Speech%20Detection/README.md) | [Speech Detection效果](https://github.com/soyaine/JavaScript30/blob/master/20%20-%20Speech%20Detection/index-finished-Dashrun.html) 21 | Geolocation | - 22 | Follow Along Link Highlighter | - 23 | Speech Synthesis | - @@ -80,7 +80,7 @@ Name | Contribution [@DrakeXiang](https://github.com/DrakeXiang) | No.[11](https://github.com/soyaine/JavaScript30/tree/master/11%20-%20Custom%20Video%20Player) [@zzh466](http://github.com/zzh466) | Review [@Xing Liu](https://github.com/S1ngS1ng) | Review -[@大史快跑Dashrun](https://github.com/dashrun) | No.[16](https://github.com/soyaine/JavaScript30/tree/master/16%20-%20Mouse%20Move%20Shadow).[17](https://github.com/soyaine/JavaScript30/tree/master/17%20-%20Sort%20Without%20Articles).[18](https://github.com/soyaine/JavaScript30/tree/master/18%20-%20AddingUpTimesWithReduce).[19](https://github.com/soyaine/JavaScript30/blob/master/19%20-%20Webcam%20Fun) +[@大史快跑Dashrun](https://github.com/dashrun) | No.[16](https://github.com/soyaine/JavaScript30/tree/master/16%20-%20Mouse%20Move%20Shadow).[17](https://github.com/soyaine/JavaScript30/tree/master/17%20-%20Sort%20Without%20Articles).[18](https://github.com/soyaine/JavaScript30/tree/master/18%20-%20AddingUpTimesWithReduce).[19](https://github.com/soyaine/JavaScript30/blob/master/19%20-%20Webcam%20Fun).[20](https://github.com/soyaine/JavaScript30/tree/master/20%20-%20Speech%20Detection) [@缉熙Soyaine](https://github.com/soyaine) | No.[1](https://github.com/soyaine/JavaScript30/tree/master/01%20-%20JavaScript%20Drum%20Kit).[2](https://github.com/soyaine/JavaScript30/tree/master/02%20-%20JS%20%2B%20CSS%20Clock).[3](https://github.com/soyaine/JavaScript30/tree/master/03%20-%20CSS%20%Variables).[4](https://github.com/soyaine/JavaScript30/tree/master/04%20-%20Array%20Cardio%20Day%201).[5](https://github.com/soyaine/JavaScript30/blob/master/05%20-%20Flex%20Panel%20Gallery).[6](https://github.com/soyaine/JavaScript30/blob/master/06%20-%20Type%20Ahead).[7](https://github.com/soyaine/JavaScript30/tree/master/07%20-%20Array%20Cardio%20Day%202).[8](https://github.com/soyaine/JavaScript30/tree/master/08%20-%20Fun%20with%20HTML5%20Canvas).[9](https://github.com/soyaine/JavaScript30/blob/master/09%20-%20Dev%20Tools%20Domination).[10](https://github.com/soyaine/JavaScript30/blob/master/10%20-%20Hold%20Shift%20and%20Check%20Checkboxes/README.md).[12](https://github.com/soyaine/JavaScript30/tree/master/12%20-%20Key%20Sequence%20Detection/README.md).[13](https://github.com/soyaine/JavaScript30/blob/master/13%20-%20Slide%20in%20on%20Scroll/README.md).[14](https://github.com/soyaine/JavaScript30/tree/master/14%20-%20JavaScript%20References%20VS%20Copying) ## JOIN US