├── views
├── map.php
├── static-maps.php
├── layout.php
└── index.php
├── .gitignore
├── public
├── map-images
│ ├── fb.png
│ ├── google.png
│ ├── dot-large-blue.png
│ ├── dot-large-gray.png
│ ├── dot-large-green.png
│ ├── dot-large-pink.png
│ ├── dot-large-red.png
│ ├── dot-small-blue.png
│ ├── dot-small-gray.png
│ ├── dot-small-green.png
│ ├── dot-small-pink.png
│ ├── dot-small-red.png
│ ├── large-gray-user.png
│ ├── large-red-blank.png
│ ├── powered-by-esri.png
│ ├── powered-by-esri.psd
│ ├── small-gray-user.png
│ ├── small-pink-user.png
│ ├── small-red-blank.png
│ ├── dot-large-orange.png
│ ├── dot-large-purple.png
│ ├── dot-large-yellow.png
│ ├── dot-small-orange.png
│ ├── dot-small-purple.png
│ ├── dot-small-yellow.png
│ ├── large-blue-blank.png
│ ├── large-blue-cutout.png
│ ├── large-gray-blank.png
│ ├── large-gray-cutout.png
│ ├── large-green-blank.png
│ ├── large-pink-blank.png
│ ├── large-pink-cutout.png
│ ├── large-red-cutout.png
│ ├── large-yellow-user.png
│ ├── small-blue-blank.png
│ ├── small-blue-cutout.png
│ ├── small-gray-blank.png
│ ├── small-gray-cutout.png
│ ├── small-green-blank.png
│ ├── small-green-user.png
│ ├── small-pink-blank.png
│ ├── small-pink-cutout.png
│ ├── small-red-cutout.png
│ ├── small-yellow-user.png
│ ├── large-green-cutout.png
│ ├── large-orange-blank.png
│ ├── large-orange-cutout.png
│ ├── large-purple-blank.png
│ ├── large-purple-cutout.png
│ ├── large-yellow-blank.png
│ ├── large-yellow-cutout.png
│ ├── large-yellow-message.png
│ ├── mapbox-attribution.png
│ ├── mapbox-attribution.psd
│ ├── small-gray-message.png
│ ├── small-green-cutout.png
│ ├── small-orange-blank.png
│ ├── small-orange-cutout.png
│ ├── small-purple-blank.png
│ ├── small-purple-cutout.png
│ ├── small-yellow-blank.png
│ └── small-yellow-cutout.png
├── assets
│ ├── sample-map.png
│ ├── font-awesome-4.4.0
│ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── less
│ │ │ ├── fixed-width.less
│ │ │ ├── larger.less
│ │ │ ├── list.less
│ │ │ ├── core.less
│ │ │ ├── font-awesome.less
│ │ │ ├── stacked.less
│ │ │ ├── bordered-pulled.less
│ │ │ ├── rotated-flipped.less
│ │ │ ├── path.less
│ │ │ ├── animated.less
│ │ │ └── mixins.less
│ │ ├── scss
│ │ │ ├── _fixed-width.scss
│ │ │ ├── _larger.scss
│ │ │ ├── _list.scss
│ │ │ ├── font-awesome.scss
│ │ │ ├── _core.scss
│ │ │ ├── _stacked.scss
│ │ │ ├── _bordered-pulled.scss
│ │ │ ├── _rotated-flipped.scss
│ │ │ ├── _path.scss
│ │ │ ├── _animated.scss
│ │ │ └── _mixins.scss
│ │ └── HELP-US-OUT.txt
│ ├── pure-0.6.0
│ │ ├── bower.json
│ │ ├── menus-horizontal-min.css
│ │ ├── buttons-core-min.css
│ │ ├── menus-core-min.css
│ │ ├── menus-scrollable-min.css
│ │ ├── menus-dropdown-min.css
│ │ ├── menus-horizontal.css
│ │ ├── grids-core-min.css
│ │ ├── menus-skin-min.css
│ │ ├── buttons-core.css
│ │ ├── menus-core.css
│ │ ├── menus-scrollable.css
│ │ ├── tables-min.css
│ │ ├── menus-dropdown.css
│ │ ├── menus-skin.css
│ │ ├── buttons-min.css
│ │ ├── tables.css
│ │ ├── grids-units-min.css
│ │ ├── base-min.css
│ │ ├── menus-min.css
│ │ ├── grids-core.css
│ │ ├── base-context-min.css
│ │ ├── grids-min.css
│ │ ├── LICENSE.md
│ │ ├── buttons.css
│ │ ├── grids-units.css
│ │ ├── menus.css
│ │ ├── README.md
│ │ ├── forms-nr-min.css
│ │ ├── grids-responsive-old-ie.css
│ │ ├── grids-responsive-old-ie-min.css
│ │ ├── grids.css
│ │ ├── forms-min.css
│ │ ├── grids-responsive-min.css
│ │ ├── forms-nr.css
│ │ ├── base.css
│ │ └── base-context.css
│ └── styles.css
├── index.php
└── .htaccess
├── CONTRIBUTING.md
├── composer.json
├── controllers
├── main.php
├── weather.php
├── timezone.php
└── geocode.php
├── p3k
├── Airports.php
├── timezone
│ └── Result.php
├── geocode
│ └── Result.php
├── geo
│ └── WebMercator.php
├── Geocoder.php
└── Weather.php
├── data
├── airports-csv-to-json.php
├── airports-csv-compact.php
└── static-maps.md
├── lib
└── helpers.php
├── README.md
├── composer.lock
└── LICENSE
/views/map.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | vendor/
3 | lib/config.php
4 | data/airports.csv
5 | data/apikeys.txt
6 |
--------------------------------------------------------------------------------
/public/map-images/fb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/fb.png
--------------------------------------------------------------------------------
/public/assets/sample-map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/assets/sample-map.png
--------------------------------------------------------------------------------
/public/map-images/google.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/google.png
--------------------------------------------------------------------------------
/public/map-images/dot-large-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-large-blue.png
--------------------------------------------------------------------------------
/public/map-images/dot-large-gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-large-gray.png
--------------------------------------------------------------------------------
/public/map-images/dot-large-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-large-green.png
--------------------------------------------------------------------------------
/public/map-images/dot-large-pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-large-pink.png
--------------------------------------------------------------------------------
/public/map-images/dot-large-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-large-red.png
--------------------------------------------------------------------------------
/public/map-images/dot-small-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-small-blue.png
--------------------------------------------------------------------------------
/public/map-images/dot-small-gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-small-gray.png
--------------------------------------------------------------------------------
/public/map-images/dot-small-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-small-green.png
--------------------------------------------------------------------------------
/public/map-images/dot-small-pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-small-pink.png
--------------------------------------------------------------------------------
/public/map-images/dot-small-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-small-red.png
--------------------------------------------------------------------------------
/public/map-images/large-gray-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-gray-user.png
--------------------------------------------------------------------------------
/public/map-images/large-red-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-red-blank.png
--------------------------------------------------------------------------------
/public/map-images/powered-by-esri.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/powered-by-esri.png
--------------------------------------------------------------------------------
/public/map-images/powered-by-esri.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/powered-by-esri.psd
--------------------------------------------------------------------------------
/public/map-images/small-gray-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-gray-user.png
--------------------------------------------------------------------------------
/public/map-images/small-pink-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-pink-user.png
--------------------------------------------------------------------------------
/public/map-images/small-red-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-red-blank.png
--------------------------------------------------------------------------------
/public/map-images/dot-large-orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-large-orange.png
--------------------------------------------------------------------------------
/public/map-images/dot-large-purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-large-purple.png
--------------------------------------------------------------------------------
/public/map-images/dot-large-yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-large-yellow.png
--------------------------------------------------------------------------------
/public/map-images/dot-small-orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-small-orange.png
--------------------------------------------------------------------------------
/public/map-images/dot-small-purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-small-purple.png
--------------------------------------------------------------------------------
/public/map-images/dot-small-yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/dot-small-yellow.png
--------------------------------------------------------------------------------
/public/map-images/large-blue-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-blue-blank.png
--------------------------------------------------------------------------------
/public/map-images/large-blue-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-blue-cutout.png
--------------------------------------------------------------------------------
/public/map-images/large-gray-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-gray-blank.png
--------------------------------------------------------------------------------
/public/map-images/large-gray-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-gray-cutout.png
--------------------------------------------------------------------------------
/public/map-images/large-green-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-green-blank.png
--------------------------------------------------------------------------------
/public/map-images/large-pink-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-pink-blank.png
--------------------------------------------------------------------------------
/public/map-images/large-pink-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-pink-cutout.png
--------------------------------------------------------------------------------
/public/map-images/large-red-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-red-cutout.png
--------------------------------------------------------------------------------
/public/map-images/large-yellow-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-yellow-user.png
--------------------------------------------------------------------------------
/public/map-images/small-blue-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-blue-blank.png
--------------------------------------------------------------------------------
/public/map-images/small-blue-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-blue-cutout.png
--------------------------------------------------------------------------------
/public/map-images/small-gray-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-gray-blank.png
--------------------------------------------------------------------------------
/public/map-images/small-gray-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-gray-cutout.png
--------------------------------------------------------------------------------
/public/map-images/small-green-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-green-blank.png
--------------------------------------------------------------------------------
/public/map-images/small-green-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-green-user.png
--------------------------------------------------------------------------------
/public/map-images/small-pink-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-pink-blank.png
--------------------------------------------------------------------------------
/public/map-images/small-pink-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-pink-cutout.png
--------------------------------------------------------------------------------
/public/map-images/small-red-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-red-cutout.png
--------------------------------------------------------------------------------
/public/map-images/small-yellow-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-yellow-user.png
--------------------------------------------------------------------------------
/public/map-images/large-green-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-green-cutout.png
--------------------------------------------------------------------------------
/public/map-images/large-orange-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-orange-blank.png
--------------------------------------------------------------------------------
/public/map-images/large-orange-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-orange-cutout.png
--------------------------------------------------------------------------------
/public/map-images/large-purple-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-purple-blank.png
--------------------------------------------------------------------------------
/public/map-images/large-purple-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-purple-cutout.png
--------------------------------------------------------------------------------
/public/map-images/large-yellow-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-yellow-blank.png
--------------------------------------------------------------------------------
/public/map-images/large-yellow-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-yellow-cutout.png
--------------------------------------------------------------------------------
/public/map-images/large-yellow-message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/large-yellow-message.png
--------------------------------------------------------------------------------
/public/map-images/mapbox-attribution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/mapbox-attribution.png
--------------------------------------------------------------------------------
/public/map-images/mapbox-attribution.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/mapbox-attribution.psd
--------------------------------------------------------------------------------
/public/map-images/small-gray-message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-gray-message.png
--------------------------------------------------------------------------------
/public/map-images/small-green-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-green-cutout.png
--------------------------------------------------------------------------------
/public/map-images/small-orange-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-orange-blank.png
--------------------------------------------------------------------------------
/public/map-images/small-orange-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-orange-cutout.png
--------------------------------------------------------------------------------
/public/map-images/small-purple-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-purple-blank.png
--------------------------------------------------------------------------------
/public/map-images/small-purple-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-purple-cutout.png
--------------------------------------------------------------------------------
/public/map-images/small-yellow-blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-yellow-blank.png
--------------------------------------------------------------------------------
/public/map-images/small-yellow-cutout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/map-images/small-yellow-cutout.png
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | By submitting code to this project, you agree to irrevocably release it under the same license as this project. See README.md for more details.
--------------------------------------------------------------------------------
/public/assets/font-awesome-4.4.0/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/assets/font-awesome-4.4.0/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/public/assets/font-awesome-4.4.0/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/assets/font-awesome-4.4.0/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/public/assets/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/assets/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/public/assets/font-awesome-4.4.0/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/assets/font-awesome-4.4.0/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/public/assets/font-awesome-4.4.0/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronpk/Atlas/main/public/assets/font-awesome-4.4.0/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/public/assets/font-awesome-4.4.0/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/public/assets/font-awesome-4.4.0/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pure",
3 | "description": "Use Pure's ridiculously tiny CSS to start any web project.",
4 | "version": "0.6.0",
5 | "main": "pure.css",
6 | "devDependencies": {
7 | "normalize-css": "^3.0"
8 | }
9 | }
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 | run();
13 |
--------------------------------------------------------------------------------
/public/assets/font-awesome-4.4.0/HELP-US-OUT.txt:
--------------------------------------------------------------------------------
1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
2 | Fonticons (https://fonticons.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
3 | comprehensive icon sets or copy and paste your own.
4 |
5 | Please. Check it out.
6 |
7 | -Dave Gandy
8 |
--------------------------------------------------------------------------------
/views/static-maps.php:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
7 |
8 |
Timezone
9 |
10 |
Retrieving the timezone at a lat/lng
11 |
12 |
16 |
17 |
Geocoder
18 |
19 |
Retrieving the lat/lng for a named location
20 |
21 |
24 |
25 |
Retrieving a named location from a lat/lng
26 |
27 |
31 |
32 |
Weather
33 |
34 |
Retrieving the current weather for a lat/lng
35 |
36 |
39 |
40 |
You'll need to pass an OpenWeatherMap.org API key in the request. Icon names reference the weather-icons icon font.
41 |
42 |
Static Maps
43 |
44 |
/map/img?marker[]=lat:45.5165;lng:-122.6764;icon:small-blue-cutout&basemap=gray&width=600&height=240&zoom=14
45 |

46 |
47 |
Full API docs
48 |
49 |
50 |
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/base-min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Pure v0.6.0
3 | Copyright 2014 Yahoo! Inc. All rights reserved.
4 | Licensed under the BSD License.
5 | https://github.com/yahoo/pure/blob/master/LICENSE.md
6 | */
7 | /*!
8 | normalize.css v^3.0 | MIT License | git.io/normalize
9 | Copyright (c) Nicolas Gallagher and Jonathan Neal
10 | */
11 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/menus-min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Pure v0.6.0
3 | Copyright 2014 Yahoo! Inc. All rights reserved.
4 | Licensed under the BSD License.
5 | https://github.com/yahoo/pure/blob/master/LICENSE.md
6 | */
7 | .pure-menu{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-menu-fixed{position:fixed;left:0;top:0;z-index:3}.pure-menu-list,.pure-menu-item{position:relative}.pure-menu-list{list-style:none;margin:0;padding:0}.pure-menu-item{padding:0;margin:0;height:100%}.pure-menu-link,.pure-menu-heading{display:block;text-decoration:none;white-space:nowrap}.pure-menu-horizontal{width:100%;white-space:nowrap}.pure-menu-horizontal .pure-menu-list{display:inline-block}.pure-menu-horizontal .pure-menu-item,.pure-menu-horizontal .pure-menu-heading,.pure-menu-horizontal .pure-menu-separator{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-item .pure-menu-item{display:block}.pure-menu-children{display:none;position:absolute;left:100%;top:0;margin:0;padding:0;z-index:3}.pure-menu-horizontal .pure-menu-children{left:0;top:auto;width:inherit}.pure-menu-allow-hover:hover>.pure-menu-children,.pure-menu-active>.pure-menu-children{display:block;position:absolute}.pure-menu-has-children>.pure-menu-link:after{padding-left:.5em;content:"\25B8";font-size:small}.pure-menu-horizontal .pure-menu-has-children>.pure-menu-link:after{content:"\25BE"}.pure-menu-scrollable{overflow-y:scroll;overflow-x:hidden}.pure-menu-scrollable .pure-menu-list{display:block}.pure-menu-horizontal.pure-menu-scrollable .pure-menu-list{display:inline-block}.pure-menu-horizontal.pure-menu-scrollable{white-space:nowrap;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;padding:.5em 0}.pure-menu-horizontal.pure-menu-scrollable::-webkit-scrollbar{display:none}.pure-menu-separator{background-color:#ccc;height:1px;margin:.3em 0}.pure-menu-horizontal .pure-menu-separator{width:1px;height:1.3em;margin:0 .3em}.pure-menu-heading{text-transform:uppercase;color:#565d64}.pure-menu-link{color:#777}.pure-menu-children{background-color:#fff}.pure-menu-link,.pure-menu-disabled,.pure-menu-heading{padding:.5em 1em}.pure-menu-disabled{opacity:.5}.pure-menu-disabled .pure-menu-link:hover{background-color:transparent}.pure-menu-active>.pure-menu-link,.pure-menu-link:hover,.pure-menu-link:focus{background-color:#eee}.pure-menu-selected .pure-menu-link,.pure-menu-selected .pure-menu-link:visited{color:#000}
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/grids-core.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Pure v0.6.0
3 | Copyright 2014 Yahoo! Inc. All rights reserved.
4 | Licensed under the BSD License.
5 | https://github.com/yahoo/pure/blob/master/LICENSE.md
6 | */
7 | /*csslint regex-selectors:false, known-properties:false, duplicate-properties:false*/
8 |
9 | .pure-g {
10 | letter-spacing: -0.31em; /* Webkit: collapse white-space between units */
11 | *letter-spacing: normal; /* reset IE < 8 */
12 | *word-spacing: -0.43em; /* IE < 8: collapse white-space between units */
13 | text-rendering: optimizespeed; /* Webkit: fixes text-rendering: optimizeLegibility */
14 |
15 | /*
16 | Sets the font stack to fonts known to work properly with the above letter
17 | and word spacings. See: https://github.com/yahoo/pure/issues/41/
18 |
19 | The following font stack makes Pure Grids work on all known environments.
20 |
21 | * FreeSans: Ships with many Linux distros, including Ubuntu
22 |
23 | * Arimo: Ships with Chrome OS. Arimo has to be defined before Helvetica and
24 | Arial to get picked up by the browser, even though neither is available
25 | in Chrome OS.
26 |
27 | * Droid Sans: Ships with all versions of Android.
28 |
29 | * Helvetica, Arial, sans-serif: Common font stack on OS X and Windows.
30 | */
31 | font-family: FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif;
32 |
33 | /*
34 | Use flexbox when possible to avoid `letter-spacing` side-effects.
35 |
36 | NOTE: Firefox (as of 25) does not currently support flex-wrap, so the
37 | `-moz-` prefix version is omitted.
38 | */
39 |
40 | display: -webkit-flex;
41 | -webkit-flex-flow: row wrap;
42 |
43 | /* IE10 uses display: flexbox */
44 | display: -ms-flexbox;
45 | -ms-flex-flow: row wrap;
46 |
47 | /* Prevents distributing space between rows */
48 | -ms-align-content: flex-start;
49 | -webkit-align-content: flex-start;
50 | align-content: flex-start;
51 | }
52 |
53 | /* Opera as of 12 on Windows needs word-spacing.
54 | The ".opera-only" selector is used to prevent actual prefocus styling
55 | and is not required in markup.
56 | */
57 | .opera-only :-o-prefocus,
58 | .pure-g {
59 | word-spacing: -0.43em;
60 | }
61 |
62 | .pure-u {
63 | display: inline-block;
64 | *display: inline; /* IE < 8: fake inline-block */
65 | zoom: 1;
66 | letter-spacing: normal;
67 | word-spacing: normal;
68 | vertical-align: top;
69 | text-rendering: auto;
70 | }
71 |
72 | /*
73 | Resets the font family back to the OS/browser's default sans-serif font,
74 | this the same font stack that Normalize.css sets for the `body`.
75 | */
76 | .pure-g [class *= "pure-u"] {
77 | font-family: sans-serif;
78 | }
79 |
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/base-context-min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Pure v0.6.0
3 | Copyright 2014 Yahoo! Inc. All rights reserved.
4 | Licensed under the BSD License.
5 | https://github.com/yahoo/pure/blob/master/LICENSE.md
6 | */
7 | /*!
8 | normalize.css v^3.0 | MIT License | git.io/normalize
9 | Copyright (c) Nicolas Gallagher and Jonathan Neal
10 | */
11 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */.pure{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.pure{margin:0}.pure article,.pure aside,.pure details,.pure figcaption,.pure figure,.pure footer,.pure header,.pure hgroup,.pure main,.pure menu,.pure nav,.pure section,.pure summary{display:block}.pure audio,.pure canvas,.pure progress,.pure video{display:inline-block;vertical-align:baseline}.pure audio:not([controls]){display:none;height:0}.pure [hidden],.pure template{display:none}.pure a{background-color:transparent}.pure a:active,.pure a:hover{outline:0}.pure abbr[title]{border-bottom:1px dotted}.pure b,.pure strong{font-weight:700}.pure dfn{font-style:italic}.pure h1{font-size:2em;margin:.67em 0}.pure mark{background:#ff0;color:#000}.pure small{font-size:80%}.pure sub,.pure sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.pure sup{top:-.5em}.pure sub{bottom:-.25em}.pure img{border:0}.pure svg:not(:root){overflow:hidden}.pure figure{margin:1em 40px}.pure hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.pure pre{overflow:auto}.pure code,.pure kbd,.pure pre,.pure samp{font-family:monospace,monospace;font-size:1em}.pure button,.pure input,.pure optgroup,.pure select,.pure textarea{color:inherit;font:inherit;margin:0}.pure button{overflow:visible}.pure button,.pure select{text-transform:none}.pure button,.pure input[type=button],.pure input[type=reset],.pure input[type=submit]{-webkit-appearance:button;cursor:pointer}.pure button[disabled],.pure input[disabled]{cursor:default}.pure button::-moz-focus-inner,.pure input::-moz-focus-inner{border:0;padding:0}.pure input{line-height:normal}.pure input[type=checkbox],.pure input[type=radio]{box-sizing:border-box;padding:0}.pure input[type=number]::-webkit-inner-spin-button,.pure input[type=number]::-webkit-outer-spin-button{height:auto}.pure input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.pure input[type=search]::-webkit-search-cancel-button,.pure input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.pure fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.pure legend{border:0;padding:0}.pure textarea{overflow:auto}.pure optgroup{font-weight:700}.pure table{border-collapse:collapse;border-spacing:0}.pure td,.pure th{padding:0}.pure .hidden,.pure [hidden]{display:none!important}.pure .pure-img{max-width:100%;height:auto;display:block}
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/grids-min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Pure v0.6.0
3 | Copyright 2014 Yahoo! Inc. All rights reserved.
4 | Licensed under the BSD License.
5 | https://github.com/yahoo/pure/blob/master/LICENSE.md
6 | */
7 | .pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap;-ms-align-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class *="pure-u"]{font-family:sans-serif}.pure-u-1,.pure-u-1-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-5-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-2-24,.pure-u-3-24,.pure-u-4-24,.pure-u-5-24,.pure-u-6-24,.pure-u-7-24,.pure-u-8-24,.pure-u-9-24,.pure-u-10-24,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%;*width:4.1357%}.pure-u-1-12,.pure-u-2-24{width:8.3333%;*width:8.3023%}.pure-u-1-8,.pure-u-3-24{width:12.5%;*width:12.469%}.pure-u-1-6,.pure-u-4-24{width:16.6667%;*width:16.6357%}.pure-u-1-5{width:20%;*width:19.969%}.pure-u-5-24{width:20.8333%;*width:20.8023%}.pure-u-1-4,.pure-u-6-24{width:25%;*width:24.969%}.pure-u-7-24{width:29.1667%;*width:29.1357%}.pure-u-1-3,.pure-u-8-24{width:33.3333%;*width:33.3023%}.pure-u-3-8,.pure-u-9-24{width:37.5%;*width:37.469%}.pure-u-2-5{width:40%;*width:39.969%}.pure-u-5-12,.pure-u-10-24{width:41.6667%;*width:41.6357%}.pure-u-11-24{width:45.8333%;*width:45.8023%}.pure-u-1-2,.pure-u-12-24{width:50%;*width:49.969%}.pure-u-13-24{width:54.1667%;*width:54.1357%}.pure-u-7-12,.pure-u-14-24{width:58.3333%;*width:58.3023%}.pure-u-3-5{width:60%;*width:59.969%}.pure-u-5-8,.pure-u-15-24{width:62.5%;*width:62.469%}.pure-u-2-3,.pure-u-16-24{width:66.6667%;*width:66.6357%}.pure-u-17-24{width:70.8333%;*width:70.8023%}.pure-u-3-4,.pure-u-18-24{width:75%;*width:74.969%}.pure-u-19-24{width:79.1667%;*width:79.1357%}.pure-u-4-5{width:80%;*width:79.969%}.pure-u-5-6,.pure-u-20-24{width:83.3333%;*width:83.3023%}.pure-u-7-8,.pure-u-21-24{width:87.5%;*width:87.469%}.pure-u-11-12,.pure-u-22-24{width:91.6667%;*width:91.6357%}.pure-u-23-24{width:95.8333%;*width:95.8023%}.pure-u-1,.pure-u-1-1,.pure-u-5-5,.pure-u-24-24{width:100%}
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/LICENSE.md:
--------------------------------------------------------------------------------
1 | Software License Agreement (BSD License)
2 | ========================================
3 |
4 | Copyright 2014 Yahoo! Inc. All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright
10 | notice, this list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright
13 | notice, this list of conditions and the following disclaimer in the
14 | documentation and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the Yahoo! Inc. nor the
17 | names of its contributors may be used to endorse or promote products
18 | derived from this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
21 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
24 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
27 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
31 |
32 | Normalize.css License
33 | =====================
34 |
35 | Copyright (c) Nicolas Gallagher and Jonathan Neal
36 |
37 | Permission is hereby granted, free of charge, to any person obtaining a copy of
38 | this software and associated documentation files (the "Software"), to deal in
39 | the Software without restriction, including without limitation the rights to
40 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
41 | the Software, and to permit persons to whom the Software is furnished to do so,
42 | subject to the following conditions:
43 |
44 | The above copyright notice and this permission notice shall be included in all
45 | copies or substantial portions of the Software.
46 |
47 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
48 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
49 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
50 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
51 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
52 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
53 |
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/buttons.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Pure v0.6.0
3 | Copyright 2014 Yahoo! Inc. All rights reserved.
4 | Licensed under the BSD License.
5 | https://github.com/yahoo/pure/blob/master/LICENSE.md
6 | */
7 | .pure-button {
8 | /* Structure */
9 | display: inline-block;
10 | zoom: 1;
11 | line-height: normal;
12 | white-space: nowrap;
13 | vertical-align: middle;
14 | text-align: center;
15 | cursor: pointer;
16 | -webkit-user-drag: none;
17 | -webkit-user-select: none;
18 | -moz-user-select: none;
19 | -ms-user-select: none;
20 | user-select: none;
21 | -webkit-box-sizing: border-box;
22 | -moz-box-sizing: border-box;
23 | box-sizing: border-box;
24 | }
25 |
26 | /* Firefox: Get rid of the inner focus border */
27 | .pure-button::-moz-focus-inner {
28 | padding: 0;
29 | border: 0;
30 | }
31 |
32 | /*csslint outline-none:false*/
33 |
34 | .pure-button {
35 | font-family: inherit;
36 | font-size: 100%;
37 | padding: 0.5em 1em;
38 | color: #444; /* rgba not supported (IE 8) */
39 | color: rgba(0, 0, 0, 0.80); /* rgba supported */
40 | border: 1px solid #999; /*IE 6/7/8*/
41 | border: none rgba(0, 0, 0, 0); /*IE9 + everything else*/
42 | background-color: #E6E6E6;
43 | text-decoration: none;
44 | border-radius: 2px;
45 | }
46 |
47 | .pure-button-hover,
48 | .pure-button:hover,
49 | .pure-button:focus {
50 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000',GradientType=0);
51 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0, 0.05)), to(rgba(0,0,0, 0.10)));
52 | background-image: -webkit-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
53 | background-image: -moz-linear-gradient(top, rgba(0,0,0, 0.05) 0%, rgba(0,0,0, 0.10));
54 | background-image: -o-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
55 | background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
56 | }
57 | .pure-button:focus {
58 | outline: 0;
59 | }
60 | .pure-button-active,
61 | .pure-button:active {
62 | box-shadow: 0 0 0 1px rgba(0,0,0, 0.15) inset, 0 0 6px rgba(0,0,0, 0.20) inset;
63 | border-color: #000\9;
64 | }
65 |
66 | .pure-button[disabled],
67 | .pure-button-disabled,
68 | .pure-button-disabled:hover,
69 | .pure-button-disabled:focus,
70 | .pure-button-disabled:active {
71 | border: none;
72 | background-image: none;
73 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
74 | filter: alpha(opacity=40);
75 | -khtml-opacity: 0.40;
76 | -moz-opacity: 0.40;
77 | opacity: 0.40;
78 | cursor: not-allowed;
79 | box-shadow: none;
80 | }
81 |
82 | .pure-button-hidden {
83 | display: none;
84 | }
85 |
86 | /* Firefox: Get rid of the inner focus border */
87 | .pure-button::-moz-focus-inner{
88 | padding: 0;
89 | border: 0;
90 | }
91 |
92 | .pure-button-primary,
93 | .pure-button-selected,
94 | a.pure-button-primary,
95 | a.pure-button-selected {
96 | background-color: rgb(0, 120, 231);
97 | color: #fff;
98 | }
99 |
--------------------------------------------------------------------------------
/p3k/Geocoder.php:
--------------------------------------------------------------------------------
1 | address;
16 |
17 | $result = new geocode\Result;
18 |
19 | $result->latitude = $lat;
20 | $result->longitude = $lng;
21 |
22 | if(property_exists($address, 'Postal'))
23 | $result->postalCode = $address->Postal;
24 |
25 | if(property_exists($address, 'Region'))
26 | $result->regionName = $address->Region;
27 |
28 | if(property_exists($address, 'City'))
29 | $result->localityName = $address->City;
30 | elseif(property_exists($address, 'Subregion'))
31 | $result->localityName = $address->Subregion;
32 | elseif(property_exists($address, 'Neighborhood'))
33 | $result->localityName = $address->Neighborhood;
34 |
35 | if(property_exists($address, 'CountryCode'))
36 | $result->countryName = $address->CountryCode;
37 |
38 | return $result;
39 | }
40 |
41 | public static function geocode($input) {
42 | $response = self::_geocode($input);
43 |
44 | if(!$response || !property_exists($response, 'locations') || count($response->locations) == 0)
45 | return false;
46 |
47 | $location = $response->locations[0];
48 | $attributes = $location->feature->attributes;
49 | $geometry = $location->feature->geometry;
50 |
51 | $result = new geocode\Result;
52 |
53 | if($geometry) {
54 | $result->latitude = $geometry->y;
55 | $result->longitude = $geometry->x;
56 | }
57 |
58 | if($attributes->City)
59 | $result->localityName = $attributes->City;
60 |
61 | if($attributes->Region)
62 | $result->regionName = $attributes->Region;
63 |
64 | if($attributes->Country)
65 | $result->countryName = $attributes->Country;
66 |
67 | if($attributes->Postal) {
68 | $result->postalCode = $attributes->Postal;
69 | } else {
70 | // If no postal code is returned, but there was coordinates, then reverse geocode to find the postal code
71 | if($geometry) {
72 | $rev = self::_reverse($result->latitude, $result->longitude);
73 | if($rev && property_exists($rev->address, 'Postal')) {
74 | $result->postalCode = $rev->address->Postal;
75 | }
76 | }
77 | }
78 |
79 | if($location->name)
80 | $result->fullAddress = $location->name;
81 |
82 | return $result;
83 | }
84 |
85 | private static function _reverse($lat, $lng) {
86 | $ch = curl_init();
87 | curl_setopt($ch, CURLOPT_URL, 'https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?location='.$lng.'%2C'.$lat.'&outSR=4326&f=json&distance=10000');
88 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
89 | // curl_setopt($ch, CURLOPT_USERAGENT, '');
90 | curl_setopt($ch, CURLOPT_TIMEOUT, 5);
91 | $result = curl_exec($ch);
92 |
93 | if($result == FALSE)
94 | return FALSE;
95 |
96 | return json_decode($result);
97 | }
98 |
99 | private static function _geocode($input) {
100 | $ch = curl_init();
101 |
102 | $params = [
103 | 'f' => 'json',
104 | 'outSR' => 4326,
105 | 'text' => $input,
106 | 'outFields' => 'City,Region,Country,Postal',
107 | ];
108 |
109 | curl_setopt($ch, CURLOPT_URL, 'https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find?' . http_build_query($params));
110 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
111 | // curl_setopt($ch, CURLOPT_USERAGENT, '');
112 | curl_setopt($ch, CURLOPT_TIMEOUT, 5);
113 | $result = curl_exec($ch);
114 |
115 | if($result == FALSE)
116 | return FALSE;
117 |
118 | return json_decode($result);
119 | }
120 |
121 | }
122 |
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/grids-units.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Pure v0.6.0
3 | Copyright 2014 Yahoo! Inc. All rights reserved.
4 | Licensed under the BSD License.
5 | https://github.com/yahoo/pure/blob/master/LICENSE.md
6 | */
7 | .pure-u-1,
8 | .pure-u-1-1,
9 | .pure-u-1-2,
10 | .pure-u-1-3,
11 | .pure-u-2-3,
12 | .pure-u-1-4,
13 | .pure-u-3-4,
14 | .pure-u-1-5,
15 | .pure-u-2-5,
16 | .pure-u-3-5,
17 | .pure-u-4-5,
18 | .pure-u-5-5,
19 | .pure-u-1-6,
20 | .pure-u-5-6,
21 | .pure-u-1-8,
22 | .pure-u-3-8,
23 | .pure-u-5-8,
24 | .pure-u-7-8,
25 | .pure-u-1-12,
26 | .pure-u-5-12,
27 | .pure-u-7-12,
28 | .pure-u-11-12,
29 | .pure-u-1-24,
30 | .pure-u-2-24,
31 | .pure-u-3-24,
32 | .pure-u-4-24,
33 | .pure-u-5-24,
34 | .pure-u-6-24,
35 | .pure-u-7-24,
36 | .pure-u-8-24,
37 | .pure-u-9-24,
38 | .pure-u-10-24,
39 | .pure-u-11-24,
40 | .pure-u-12-24,
41 | .pure-u-13-24,
42 | .pure-u-14-24,
43 | .pure-u-15-24,
44 | .pure-u-16-24,
45 | .pure-u-17-24,
46 | .pure-u-18-24,
47 | .pure-u-19-24,
48 | .pure-u-20-24,
49 | .pure-u-21-24,
50 | .pure-u-22-24,
51 | .pure-u-23-24,
52 | .pure-u-24-24 {
53 | display: inline-block;
54 | *display: inline;
55 | zoom: 1;
56 | letter-spacing: normal;
57 | word-spacing: normal;
58 | vertical-align: top;
59 | text-rendering: auto;
60 | }
61 |
62 | .pure-u-1-24 {
63 | width: 4.1667%;
64 | *width: 4.1357%;
65 | }
66 |
67 | .pure-u-1-12,
68 | .pure-u-2-24 {
69 | width: 8.3333%;
70 | *width: 8.3023%;
71 | }
72 |
73 | .pure-u-1-8,
74 | .pure-u-3-24 {
75 | width: 12.5000%;
76 | *width: 12.4690%;
77 | }
78 |
79 | .pure-u-1-6,
80 | .pure-u-4-24 {
81 | width: 16.6667%;
82 | *width: 16.6357%;
83 | }
84 |
85 | .pure-u-1-5 {
86 | width: 20%;
87 | *width: 19.9690%;
88 | }
89 |
90 | .pure-u-5-24 {
91 | width: 20.8333%;
92 | *width: 20.8023%;
93 | }
94 |
95 | .pure-u-1-4,
96 | .pure-u-6-24 {
97 | width: 25%;
98 | *width: 24.9690%;
99 | }
100 |
101 | .pure-u-7-24 {
102 | width: 29.1667%;
103 | *width: 29.1357%;
104 | }
105 |
106 | .pure-u-1-3,
107 | .pure-u-8-24 {
108 | width: 33.3333%;
109 | *width: 33.3023%;
110 | }
111 |
112 | .pure-u-3-8,
113 | .pure-u-9-24 {
114 | width: 37.5000%;
115 | *width: 37.4690%;
116 | }
117 |
118 | .pure-u-2-5 {
119 | width: 40%;
120 | *width: 39.9690%;
121 | }
122 |
123 | .pure-u-5-12,
124 | .pure-u-10-24 {
125 | width: 41.6667%;
126 | *width: 41.6357%;
127 | }
128 |
129 | .pure-u-11-24 {
130 | width: 45.8333%;
131 | *width: 45.8023%;
132 | }
133 |
134 | .pure-u-1-2,
135 | .pure-u-12-24 {
136 | width: 50%;
137 | *width: 49.9690%;
138 | }
139 |
140 | .pure-u-13-24 {
141 | width: 54.1667%;
142 | *width: 54.1357%;
143 | }
144 |
145 | .pure-u-7-12,
146 | .pure-u-14-24 {
147 | width: 58.3333%;
148 | *width: 58.3023%;
149 | }
150 |
151 | .pure-u-3-5 {
152 | width: 60%;
153 | *width: 59.9690%;
154 | }
155 |
156 | .pure-u-5-8,
157 | .pure-u-15-24 {
158 | width: 62.5000%;
159 | *width: 62.4690%;
160 | }
161 |
162 | .pure-u-2-3,
163 | .pure-u-16-24 {
164 | width: 66.6667%;
165 | *width: 66.6357%;
166 | }
167 |
168 | .pure-u-17-24 {
169 | width: 70.8333%;
170 | *width: 70.8023%;
171 | }
172 |
173 | .pure-u-3-4,
174 | .pure-u-18-24 {
175 | width: 75%;
176 | *width: 74.9690%;
177 | }
178 |
179 | .pure-u-19-24 {
180 | width: 79.1667%;
181 | *width: 79.1357%;
182 | }
183 |
184 | .pure-u-4-5 {
185 | width: 80%;
186 | *width: 79.9690%;
187 | }
188 |
189 | .pure-u-5-6,
190 | .pure-u-20-24 {
191 | width: 83.3333%;
192 | *width: 83.3023%;
193 | }
194 |
195 | .pure-u-7-8,
196 | .pure-u-21-24 {
197 | width: 87.5000%;
198 | *width: 87.4690%;
199 | }
200 |
201 | .pure-u-11-12,
202 | .pure-u-22-24 {
203 | width: 91.6667%;
204 | *width: 91.6357%;
205 | }
206 |
207 | .pure-u-23-24 {
208 | width: 95.8333%;
209 | *width: 95.8023%;
210 | }
211 |
212 | .pure-u-1,
213 | .pure-u-1-1,
214 | .pure-u-5-5,
215 | .pure-u-24-24 {
216 | width: 100%;
217 | }
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/menus.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Pure v0.6.0
3 | Copyright 2014 Yahoo! Inc. All rights reserved.
4 | Licensed under the BSD License.
5 | https://github.com/yahoo/pure/blob/master/LICENSE.md
6 | */
7 | /*csslint adjoining-classes: false, box-model:false*/
8 | .pure-menu {
9 | -webkit-box-sizing: border-box;
10 | -moz-box-sizing: border-box;
11 | box-sizing: border-box;
12 | }
13 |
14 | .pure-menu-fixed {
15 | position: fixed;
16 | left: 0;
17 | top: 0;
18 | z-index: 3;
19 | }
20 |
21 | .pure-menu-list,
22 | .pure-menu-item {
23 | position: relative;
24 | }
25 |
26 | .pure-menu-list {
27 | list-style: none;
28 | margin: 0;
29 | padding: 0;
30 | }
31 |
32 | .pure-menu-item {
33 | padding: 0;
34 | margin: 0;
35 | height: 100%;
36 | }
37 |
38 | .pure-menu-link,
39 | .pure-menu-heading {
40 | display: block;
41 | text-decoration: none;
42 | white-space: nowrap;
43 | }
44 |
45 | /* HORIZONTAL MENU */
46 | .pure-menu-horizontal {
47 | width: 100%;
48 | white-space: nowrap;
49 | }
50 |
51 | .pure-menu-horizontal .pure-menu-list {
52 | display: inline-block;
53 | }
54 |
55 | /* Initial menus should be inline-block so that they are horizontal */
56 | .pure-menu-horizontal .pure-menu-item,
57 | .pure-menu-horizontal .pure-menu-heading,
58 | .pure-menu-horizontal .pure-menu-separator {
59 | display: inline-block;
60 | *display: inline;
61 | zoom: 1;
62 | vertical-align: middle;
63 | }
64 |
65 | /* Submenus should still be display: block; */
66 | .pure-menu-item .pure-menu-item {
67 | display: block;
68 | }
69 |
70 | .pure-menu-children {
71 | display: none;
72 | position: absolute;
73 | left: 100%;
74 | top: 0;
75 | margin: 0;
76 | padding: 0;
77 | z-index: 3;
78 | }
79 |
80 | .pure-menu-horizontal .pure-menu-children {
81 | left: 0;
82 | top: auto;
83 | width: inherit;
84 | }
85 |
86 | .pure-menu-allow-hover:hover > .pure-menu-children,
87 | .pure-menu-active > .pure-menu-children {
88 | display: block;
89 | position: absolute;
90 | }
91 |
92 | /* Vertical Menus - show the dropdown arrow */
93 | .pure-menu-has-children > .pure-menu-link:after {
94 | padding-left: 0.5em;
95 | content: "\25B8";
96 | font-size: small;
97 | }
98 |
99 | /* Horizontal Menus - show the dropdown arrow */
100 | .pure-menu-horizontal .pure-menu-has-children > .pure-menu-link:after {
101 | content: "\25BE";
102 | }
103 |
104 | /* scrollable menus */
105 | .pure-menu-scrollable {
106 | overflow-y: scroll;
107 | overflow-x: hidden;
108 | }
109 |
110 | .pure-menu-scrollable .pure-menu-list {
111 | display: block;
112 | }
113 |
114 | .pure-menu-horizontal.pure-menu-scrollable .pure-menu-list {
115 | display: inline-block;
116 | }
117 |
118 | .pure-menu-horizontal.pure-menu-scrollable {
119 | white-space: nowrap;
120 | overflow-y: hidden;
121 | overflow-x: auto;
122 | -ms-overflow-style: none;
123 | -webkit-overflow-scrolling: touch;
124 | /* a little extra padding for this style to allow for scrollbars */
125 | padding: .5em 0;
126 | }
127 |
128 | .pure-menu-horizontal.pure-menu-scrollable::-webkit-scrollbar {
129 | display: none;
130 | }
131 |
132 | /* misc default styling */
133 |
134 | .pure-menu-separator {
135 | background-color: #ccc;
136 | height: 1px;
137 | margin: .3em 0;
138 | }
139 |
140 | .pure-menu-horizontal .pure-menu-separator {
141 | width: 1px;
142 | height: 1.3em;
143 | margin: 0 .3em ;
144 | }
145 |
146 | .pure-menu-heading {
147 | text-transform: uppercase;
148 | color: #565d64;
149 | }
150 |
151 | .pure-menu-link {
152 | color: #777;
153 | }
154 |
155 | .pure-menu-children {
156 | background-color: #fff;
157 | }
158 |
159 | .pure-menu-link,
160 | .pure-menu-disabled,
161 | .pure-menu-heading {
162 | padding: .5em 1em;
163 | }
164 |
165 | .pure-menu-disabled {
166 | opacity: .5;
167 | }
168 |
169 | .pure-menu-disabled .pure-menu-link:hover {
170 | background-color: transparent;
171 | }
172 |
173 | .pure-menu-active > .pure-menu-link,
174 | .pure-menu-link:hover,
175 | .pure-menu-link:focus {
176 | background-color: #eee;
177 | }
178 |
179 | .pure-menu-selected .pure-menu-link,
180 | .pure-menu-selected .pure-menu-link:visited {
181 | color: #000;
182 | }
183 |
--------------------------------------------------------------------------------
/p3k/Weather.php:
--------------------------------------------------------------------------------
1 | 'Please provide an api key from openweathermap.org'];
11 | }
12 |
13 | $data = self::_fetch($lat, $lng, $key);
14 | if(!$data) return null;
15 |
16 | if(!property_exists($data, 'current'))
17 | return null;
18 |
19 | $weather = [
20 | 'description' => null,
21 | 'icon' => [
22 | 'name' => null
23 | ],
24 | 'temp' => null,
25 | 'feelslike' => null,
26 | 'humidity' => null,
27 | 'wind' => null,
28 | 'pressure' => null,
29 | 'precip_today' => null,
30 | 'timezone' => [
31 | 'offset' => null,
32 | 'name' => null,
33 | 'abbr' => null
34 | ]
35 | ];
36 |
37 | $sunny = self::_sunny($data->lat, $data->lon);
38 |
39 | $icon_name = self::_icon_name($data->current->weather[0]->id);
40 |
41 | $weather['sun'] = $sunny;
42 |
43 | $weather['description'] = $data->current->weather[0]->description;
44 | $weather['icon']['name'] = $icon_name;
45 | $weather['temp'] = [
46 | 'num' => (double)$data->current->temp,
47 | 'unit' => '°F'
48 | ];
49 | $weather['feelslike'] = [
50 | 'num' => (double)$data->current->feels_like,
51 | 'unit' => '°F'
52 | ];
53 | $weather['wind'] = [
54 | 'num' => $data->current->wind_speed,
55 | 'unit' => 'mph'
56 | ];
57 | $weather['pressure'] = [
58 | 'num' => (int)$data->current->pressure,
59 | 'unit' => 'mb'
60 | ];
61 | $weather['humidity'] = [
62 | 'num' => round($data->current->humidity),
63 | 'unit' => '%'
64 | ];
65 |
66 | $weather['timezone']['name'] = $data->timezone;
67 | $weather['timezone']['offset'] = $data->timezone_offset;
68 |
69 | #$weather['raw'] = $current;
70 |
71 | return $weather;
72 | }
73 |
74 | private static function _fetch($lat, $lng, $key) {
75 | $params = [
76 | 'units' => 'imperial',
77 | 'lat' => $lat,
78 | 'lon' => $lng,
79 | 'appid' => $key,
80 | 'exclude' => 'minutely,hourly,daily,alerts'
81 | ];
82 | $ch = curl_init();
83 | curl_setopt($ch, CURLOPT_URL, 'https://api.openweathermap.org/data/3.0/onecall?'.http_build_query($params));
84 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
85 | // curl_setopt($ch, CURLOPT_USERAGENT, '');
86 | curl_setopt($ch, CURLOPT_TIMEOUT, 5);
87 | $result = curl_exec($ch);
88 |
89 | if($result == FALSE)
90 | return FALSE;
91 |
92 | return json_decode($result);
93 | }
94 |
95 | // Returns "day" or "night" depending on whether the sun is up at the given location
96 | private static function _sunny($lat, $lng, $timezone=null) {
97 | // Get the beginning of the current day
98 |
99 | $now = new DateTime();
100 | if(!$timezone) {
101 | $timezone = \p3k\Timezone::timezone_for_location($lat, $lng);
102 | }
103 | $tz = new DateTimeZone($timezone);
104 | $now->setTimeZone($tz);
105 | $offset = $now->format('Z')/3600;
106 | $now = $now->format('H') + ($now->format('i')/60);
107 |
108 | $sunrise = date_sunrise($now, SUNFUNCS_RET_DOUBLE, $lat, $lng, 90, $offset);
109 | $sunset = date_sunset($now, SUNFUNCS_RET_DOUBLE, $lat, $lng, 90, $offset);
110 |
111 | return [
112 | 'sunrise' => round($sunrise,2),
113 | 'sunset' => round($sunset,2),
114 | 'now' => round($now,2),
115 | 'light' => ($sunrise < $now && $now < $sunset) ? 'day' : 'night',
116 | 'timezone' => $timezone,
117 | ];
118 | }
119 |
120 | private static function _icon_name($icon) {
121 | return 'wi-owm-'.$icon;
122 | /*
123 | // A mapping of darksky to weather-icons is here https://erikflowers.github.io/weather-icons/api-list.html
124 | $map = [
125 | 'clear-day' => 'day-sunny',
126 | 'clear-night' => 'night-clear',
127 | 'rain' => 'rain',
128 | 'snow' => 'snow',
129 | 'sleet' => 'sleet',
130 | 'wind' => 'strong-wind',
131 | 'fog' => 'day-haze',
132 | 'cloudy' => 'cloudy',
133 | 'partly-cloudy-day' => 'day-cloudy',
134 | 'partly-cloudy-night' => 'night-cloudy',
135 | 'hail' => 'day-hail',
136 | 'thunderstorm' => 'thunderstorm',
137 | 'tornado' => 'tornado',
138 | ];
139 | if(array_key_exists($icon, $map)) {
140 | return 'wi-'.$map[$icon];
141 | } else {
142 | return false;
143 | }
144 | */
145 | }
146 |
147 | }
148 |
149 |
--------------------------------------------------------------------------------
/public/assets/pure-0.6.0/README.md:
--------------------------------------------------------------------------------
1 | Pure
2 | ====
3 | [](https://gitter.im/yahoo/pure?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4 |
5 | [][Pure]
6 |
7 | A set of small, responsive CSS modules that you can use in every web project.
8 | [http://purecss.io/][Pure]
9 |
10 | [][Build Status]
11 |
12 | **Use From the CDN:**
13 |
14 | ```html
15 |