You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
9 lines
1.3 KiB
9 lines
1.3 KiB
/*! |
|
* geotools v1.0.6 |
|
* https://github.com/myspace-nu |
|
* |
|
* Copyright 2018 Johan Johansson |
|
* Released under the MIT license |
|
*/ |
|
|
|
"use strict";function geotools(){var h=this;return this.earthRadius=6371008,this.position=function(t,i,a){return"object"==typeof t?(this.latitude=t.latitude,this.longitude=t.longitude,this.altitude=t.altitude):(this.latitude=t,this.longitude=i,this.altitude=a),this.distanceTo=function(t){var i=(t.latitude-this.latitude)*(Math.PI/180),a=(t.longitude-this.longitude)*(Math.PI/180),h=Math.sin(i/2)*Math.sin(i/2)+Math.cos(this.latitude*(Math.PI/180))*Math.cos(t.latitude*(Math.PI/180))*Math.sin(a/2)*Math.sin(a/2);return 6371008*(2*Math.atan2(Math.sqrt(h),Math.sqrt(1-h)))},this.displace=function(t,i){var a=this.latitude*(Math.PI/180),h=this.longitude*(Math.PI/180),s=Math.asin(Math.sin(a)*Math.cos(i/this.earthRadius)+Math.cos(a)*Math.sin(i/this.earthRadius)*Math.cos(t)),n=h+Math.atan2(Math.sin(t)*Math.sin(i/this.earthRadius)*Math.cos(a),Math.cos(i/this.earthRadius)-Math.sin(a)*Math.sin(s));return s*=180/Math.PI,n*=180/Math.PI,new this.position({latitude:s,longitude:n})},this.fromZip=function(t){for(var i in h.zipdb)t>=h.zipdb[i].a&&t<=h.zipdb[i].b&&(this.latitude=h.zipdb[i].t,this.longitude=h.zipdb[i].n,this.city=h.zipdb[i].c,this.county=h.zipdb[i].r);return this},this},this} |