├── .gitignore
├── .jshintrc
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── bower.json
├── demo
├── demo.css
├── demo.html
└── demo.js
├── gruntFile.js
├── package.json
├── publish.js
├── src
└── ui-map.js
└── test
├── googlemaps.js
├── karma.conf.js
└── mapSpec.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | bower_components
3 | dist
4 | out
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "boss": true,
3 | "browser": true,
4 | "eqnull": true,
5 | "expr": true,
6 | "globalstrict": true,
7 | "immed": true,
8 | "laxbreak": true,
9 | "loopfunc": true,
10 | "newcap": true,
11 | "noarg": true,
12 | "noempty": true,
13 | "nonew": true,
14 | "quotmark": true,
15 | "smarttabs": true,
16 | "sub": true,
17 | "trailing": true,
18 | "undef": true,
19 | "unused": true,
20 | "globals": {
21 | "angular": false
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: node_js
3 | node_js:
4 | - '0.10'
5 | before_install:
6 | - export DISPLAY=:99.0
7 | - sh -e /etc/init.d/xvfb start
8 | - npm install -qg bower grunt-cli
9 | - npm install -q
10 | - bower install --force
11 | - bower install --force
12 | after_success:
13 | - "./node_modules/angular-ui-publisher/travis/authentication.sh || exit 0"
14 | - "grunt dist build:gh-pages publish:gh-pages build:bower publish:bower"
15 | script: grunt
16 | env:
17 | global:
18 | - REPO="git@github.com:angular-ui/ui-map.git"
19 | - secure: ! 'Ggzx5RFlcrU4HGtp43dfikwDEyAz5KyMd5IHZOmqh+fsE0XHHyRSUHKXBwLw
20 |
21 | XIdERDdDgcx/Uy/gG07hdc3bm9uBCebtf2TUiC10Morv4X4gYq9fmNEiqYFs
22 |
23 | ZuMam+e9j8iyFa8zV0ptDPUfiwtMc4sbc8Yj2MniNsi0t602mNc='
24 | - secure: ! 'axLcS6fl7aKTiklqZ0f9hg64iY8MZqSXN+DOoIEZCyCGSzPk0B58wd1HoA/D
25 |
26 | T2WhbZIA7TMVFRWywtYv8kaTvaqjO5PJClwxhx/vR3KbQniMG2pbzubmTVsJ
27 |
28 | sW53c2rcl4cSlFGRbNWvogRjRB1mv/yrFiYCzL0KUHq+OoOtgXU='
29 | - secure: ! 'BwNIIBaStT8EUb8DEon0jZLTHv7cEMtAoFaS6zZx2/hsBxhKrX5yQZIgEaKS
30 |
31 | yXR57p/X7MDfgbud9NdwlhlMb6hOCmtYab1totNNabYkXNkh7kdgIewHSuTF
32 |
33 | CmXqnIJ/Cl6tw9R0nI/ulnGuAN8fSRbRmouLWJ02JpjUP2Q55v8='
34 | - secure: ! 'LQOSYEr8LUFhTKwlxwZDDXPSudiBsH3pr8gPLacnb9Up4OHYwosI4f5oaZGi
35 |
36 | UQW7ND90+hymsyFyPOx6NfRvIOaMVKHBvSoWPQfjigmTL6yz45191STr8YvI
37 |
38 | Pv5+h++RVf0KOhm3zfzu2NK8A0Q2Ccwl78yVEpyB8wT3sG5z4zc='
39 | - secure: ! 'Ur52cHqL1QvTCGL5+PBWpTDWIrkWB8nf3MJN+AFvhY+NODIRcosX4N2na8Wx
40 |
41 | ULwkYeJ5BlnTjdueAEOy5GN24Kd2xTlenmbl/1jIbYNehaoyeWRSOJrMgLtl
42 |
43 | YwUwd8X8CLakPvp/oSUM8m3Safm6lByJUsVjucg7Ee+Wvv0HJGE='
44 | - secure: ! 'TBJHdn/zWfQDWF3YWOQ0fgZwPCM5IjHmHypFD5Ks/XRyXgDIn1YWT8dXAcl3
45 |
46 | zNmZ6lXp4Xqkuisy8ENAnhCdWMW2bgDTAT+EkzFfqd9IZnKKi3eEEoL8R7sr
47 |
48 | DzprJnksZJXNY7H71NPhav3aWNtA4Lw6t5njLhIvmOk9hd/meg4='
49 | - secure: ! 'RsseeP4xur86aPPYOgxRoVpDAEs77x2d3MvZiC8ZMyW68+vw7BBzuz5KaN5J
50 |
51 | YXAXUoe83P4q0e0RpCI8qN+Q5P7hIsTdypoKnO4zKDEoiE0DIR+JcKAd6mvi
52 |
53 | pGhcabdItqxuPYZt9GWX3yZSug5o/hNXRmwxdpR5QCGdJsGFCvY='
54 | - secure: ! 'DeIGQ2ZOE5q0WC6EhLODgTSBzSKWxgb+7+AuAln4uVFmG9whdXo2HHrkluih
55 |
56 | 3Dxld6Z+60eNSQJqSl94rDFe6yyz5+r3CnyrUWDCoz6EimXJQJ8sLgf0T36A
57 |
58 | e5q0vlCobikomCJV1EeNrUKWFVcw58im8f5KSkmxGkZkpW8Ex80='
59 | - secure: ! 'VhNk8nAkf3eBOkH2LxVshBFldn9BrhR66AXu9MXGSjMmxk4QyM+OStgeN4Ta
60 |
61 | iA5j2buDVU9GcW0cHydonUoP9OvV8/muMuXTRuNocEhFwvmoIvIxndxkbR7Y
62 |
63 | pjZtP5KfRqnk0iQ8EXNJY8HpaNkKlE/U+KJKjaH+6Jl32vYkF7E='
64 | - secure: ! 'bUHhuQ7gYxLPCn4TyimL1wAhSJVdBuoor8l3Z6LiCP4fDkD3hFK9i3e6SbVy
65 |
66 | qrXXjOHbr3/ghs9nuIy8Wmj1jTR6TanhxeAZ1dyR1ohlHKxwgoNCmjES3F8l
67 |
68 | 2j7NXQL1HCMkCR05BZgfr3tpSvSDMlS4q1K0cZVE1CimKA22U/k='
69 | - secure: ! 'fxRO9CnicxrLOFu/rv+KpwTHglgz/XnE9GI3iWEziURXPnWQvemPggODdALt
70 |
71 | a4lpASNh6KKD+lRV0i0ul710U/TFpkJk8uNqoeAtaLqpqx/Kc8e2HuKVJQHL
72 |
73 | wpLpOjwtD8niOYGliyz0oOuj7XhOHvB7hWSaBdw+LJjP2LuouKw='
74 | - secure: ! 'Uk4YG1mrgscEWV9f126X46D1RcblWan/9TcmKiCQsyYPVDj7erCLc59E7Ndm
75 |
76 | /3TPfileWzImY/NZfrJau00insmq/OMhPKHX72CdrKNyaKo8y+bUx1Z/4CCV
77 |
78 | 1sh/Z+pZ5x9gx/KRbTrQH+fvR/31/OJSzBZIuhuh8+/Qb/9TJ9Q='
79 | - secure: ! 'Fox77OixFE0y98/dEzHVxtkbbTf4zpwLF5/T3ZOLFwl8W+XT7fYFrZ0kKUTf
80 |
81 | 0hlZvXlpIKj1A94sKAUCRlh03LJGFmn+ZvKMXnnCK0rp4ZRnIreUh9+bUKsV
82 |
83 | KfzLUXzbSt7PSBih9XnPxsWyL4kL7yOrX3eSV+EmxGsnp8JPpLg='
84 | - secure: ! 'G6dkglxW/y+SLk3zEdAs/RTnZNAHjNHx3qAZmcYuDwGH9742zeQiyiZ87Vbm
85 |
86 | d/MbYz/dW5EerLWXoIcHfbpxntSObp7qClUHewDqaFCuN3nbQseiDpLNK0TY
87 |
88 | 7LI1iAaDI/sY2tstX3FIK8wJJedawU7jUBBpoff5+yhpt48XZro='
89 | - secure: ! 'eecQmGE+09JuVNCj86Ce47NWmOTewNQbfVlpjeHa6Im7mHMai0+eaHEcKAjw
90 |
91 | qVcSYjpbc9qhhfUprc2MWf8HyYmBGSYq0b2xOgXVd2gHRhc2ICeQrEOz7f8b
92 |
93 | 73OSRPnCDrg8avjZTy6sJec2VwMY4L/Hz1C2+LpNjvXMt5Ltb+A='
94 | - secure: ! 'JB8YGDVta+qdMSsSCK67/1TNokZl4pE82ka/ED2KB3jChFN5252FVjwFUlxx
95 |
96 | DfWqyEpzm3HtOGXIX9B+sM+vFKT/GIReOx14iSiZEoZ0+MJIZplRsDN2PgiO
97 |
98 | 1l+HVxiDFFTBPd/0lfkl+cvBJ7vHuV8fKIq5QcWC4W8fyw7BO/U='
99 | - secure: ! 'b4xVLXL58muqBhZzYznwXrsdPzEBONMaXtulg74NcaTA357GTleKkPfLD/lQ
100 |
101 | xR7SN9wAH395xR1CxqeUgILG4h/PANjGfTxf+YBaNybu+pkjiCACePE/rgPV
102 |
103 | oa6HftkvU7unPg1Qsy89w9+TO3RbLObl2LgmABdKXAni3cHTfJE='
104 | - secure: ! 'ScGiDn76Ewnk/JaSe7xORoMloAle1jQKRcdMi3oEJpKTboMrqhJEybJ3lfhX
105 |
106 | F/IdDVaneTAqXe2X2Dtutj6RN146/xyJiE1wLwzRTv6OifZVDBRhbZzdhrtb
107 |
108 | Dyb5OE7G8/cEwhD/ZSLgOBugWSsi+74TJCQeymM22MhDClWd+sY='
109 | - secure: ! 'SKSDcZb4Z0tRz54VIweY8HheagPFrEp14EdKX+MUSDKl3orWK9NyX5ZF1Acz
110 |
111 | tiYDG+PhXysYVXq4iCs9odGxy5UyQyGvwkf8vKFG/4Q5LF0OQOpWC7btrzie
112 |
113 | +sdWbFizB6FxCBFhsUocnmtvD4+oZWcu4KMxztKPdPdPv7r70cw='
114 | - secure: ! 'KhcTRrGY8763gw9Lxy0E5iDp2a2tTS7CO/z9gX3kvw2uWIPnggaAxdsrDMae
115 |
116 | rdFDAE2zNpDRxM67pPmeVrisRCRmdgJBz9RW6dTrRM5o5WJktEO5vYQRsibB
117 |
118 | bHvhr/2q7qS8ynCTyD4UDi0PMlyy2pEI6mmAyCwiU9yj0viwWFo='
119 | - secure: ! 'NYWbuzljMVP3rMIa2XwSAdNo+d4M8hkLnTleERyseH7F+/7FwTawylq+58aC
120 |
121 | ejN34Xg1gAB2Ci33eFTIp4NKN7MzqGQRZNpD6J0QqO+s32PNJDDymCe40W++
122 |
123 | Tv+mBlICsZ+7wmY2MenzcoLXj8YWMPI9dZ5AgkjqA3Qn7Cf0caM='
124 | - secure: ! 'YO1+kO5biLPAczwVZe7hDSh5XbYHVhv9nL4yETljaHT65ou8euZfgqs/DwV/
125 |
126 | O94cnYi2B6CXMS6IdbIBjxns1yTF2e5fymrtmqGyZh6APBXc+VItSht3Oapd
127 |
128 | oz/QGN2jriGOyhr4DgT5SQMH89gFaodpnDCQep7mlOGkx31vLeA='
129 | - secure: ! 'JiFeeeu4Z1KrXuEGotp/4/anTuN33Eo9NPSNrvo7yrRv1B3IJshUlMwbfqHo
130 |
131 | xFvluSnmkT48hcbSUN4eXHwtOhjCGZxjMeJsHPzrwNQTzJWRSKn8Nqs9ZxMj
132 |
133 | jKp/vvb4c3Hf33TmgMHdqrOGbvf+tmghzkrXgZ/zRmAU6PUgk0k='
134 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | ## v0.5.0 (2013-12-28)
3 |
4 |
5 | #### Bug Fixes
6 |
7 | * **demo:** add $params to .addMarker() arguments ([f5de0579](http://github.com/angular-ui/ui-map/commit/f5de0579d4164fe67c0a5d1842ffba08863d70d6), closes [#22](http://github.com/angular-ui/ui-map/issues/22))
8 | * **grunt:** add forgotten publish.js file ([c75650b5](http://github.com/angular-ui/ui-map/commit/c75650b5bc3ed62e43591a737435d764e5fdcf29))
9 | * **travis:** use angular-ui-publisher ([f51d575a](http://github.com/angular-ui/ui-map/commit/f51d575a595b4d78facd887640a9b8162c2ab93a))
10 |
11 |
12 | #### Features
13 |
14 | * **grunt:**
15 | * add connect tasks ([444e51c7](http://github.com/angular-ui/ui-map/commit/444e51c77adf906620f149965e117020060a86ac))
16 | * add serve task ([cee68085](http://github.com/angular-ui/ui-map/commit/cee6808598e5bd40ba1b245805f4cc3a5187ab23))
17 | * add ngmin ([51f4e98d](http://github.com/angular-ui/ui-map/commit/51f4e98d100f30b7ac8da8755459abc88b7b00ea))
18 | * add build and publish tasks ([057ef2cc](http://github.com/angular-ui/ui-map/commit/057ef2cce1d3a17546599224dc2fb7298dcae1ae))
19 |
20 |
21 |
22 | ## v0.4.0
23 | * **Validate directive** has been upgraded
24 | * **API BREAKING CHANGE!** now takes expressions instead of function references
25 | * You must explicitly specify the $value variable, but you no longer need to create a function
26 | * **NEW FEATURE** uiValidateWatch allows you to re-fire a validation rule (or all rules) when a related model changes (confirm_password)
27 | * **CodeMirror directive** has been updated
28 | * Now works with v3.02
29 | * **NEW FEATURE** uiRefresh lets you specify an expression to watch for changes to refresh codemirror (useful for modals)
30 | * **Mask directive** has many new fixes
31 | * Fixes for **uiDate**
32 | * **DateFormat directive** can now be declared in **uiConfig**
33 | * **uiJq Passthru directive** has upgrades to support a wider variety of directives
34 | * Now fires asyncronously post-angular-rendering of the view (**uiDefer** option is now always true)
35 | * New **uiRefresh** lets you specify an expression to watch to re-fire the plugin (call $(elm).focus() when a modal opens)
36 | * **Select2 directive** now adds support for setting the selected item by specifying a simple ID
37 | * FINALLY have unit-tests for Select2!
38 | * **IEShiv** has been simplified and stripped of browser-sniffing code (just use conditional comments)
39 | * **Calendar directive** now performs better watching of events data
40 | * Added optional equalsTracker attr (increment to force update from scope)
41 | * **Sortable directive** now properly supports connectWith option
42 | * New **route directive** that sets a boolean based on a pattern match of the current route (useful for tabs/navigation)
43 | * Refactored **If directive** to be tidier
44 | * **API BREAKING CHANGE!** **Modal directive** has been completely removed (if you still need it, grab the files from v0.3.x)
45 |
46 | ## v0.3.0
47 | * New **format** filter
48 | * Lots of cleanup! Consistent indentation, linting
49 | * Custom builds via grunt (soon to be leveraged via builder)
50 | * uiDate now watches options
51 | * Rewrote ui-keypress (API is not backwards-compatible)
52 | * **ui-**keypress has been expanded into **ui-keyup**, **ui-keydown** and **ui-keypress**
53 | * The **ui-keypress** can now be used to `$event.preventDefault()` as expected
54 | * Multiple combinations are separated by spaces, while multi-key combos are separated by dashes: `'enter alt-space 13-shift':'whatever()'`
55 | * The string-notation (__a and be or c and d__) has been dropped completely
56 | * Can now pass (or globally define) the value uiReset resets to
57 |
58 | ## v0.2.0
59 | * Unit tests. Unit tests. Unit tests.
60 | * New **inflector** filter (previously named **prettifier**)
61 | * Added 2 alternative modes, now contains: humanize, underscore and variable
62 | * **Passthrough directive** (uiJq) now fixes common ngModel problems due to trigger(change). Can optionally be disabled
63 | * Removed **Length Filter** (you can instead do {{ ( myArray | filter: { gender:'m' } ).length }})
64 | * Added **validate directive**, allows you to pass validation functions
65 | * **Sortable directive**
66 | * Fixed **unique filter**
67 | * **Highlight filter** has had bug fixes
68 | * **Event directive** has been refactored / improved
69 | * **Keypress directive** has been refactored / improved
70 | * New **if-directive** instead of **remove directive** (removed)
71 | * New **google maps directive**
72 | * New **animate directive** that transitions the injection of new DOM elements (transitioning the removal of DOM is still not supported yet)
73 | * Improvements to **scrollfix directive**
74 |
75 | ## v0.1.0
76 | * New folder structure
77 | * Too many to list
78 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | CONTRIBUTING
2 | ============
3 |
4 | * Open a [Pull Request (PR)](https://github.com/angular-ui/angular-ui/pull/new/master)
5 | * Make sure your PR is on a **new branch** you created off of the latest version of master
6 | * Do **not** open a PR from your master branch
7 | * Open a PR to start a discussion even if the code isn't finished (easier to collect feedback this way)
8 | * Do **NOT** commit your changes to the [build files](https://github.com/angular-ui/angular-ui/tree/master/build)
9 | * Make sure all previous tests pass and add new tests for added behaviors
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2012 the AngularUI Team, http://angular-ui.github.com
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # UI.Map [](http://travis-ci.org/angular-ui/ui-map)
2 |
3 | This directive allows you to add [Google Maps Javascript API](https://developers.google.com/maps/) elements.
4 |
5 | ## Requirements
6 |
7 | - AngularJS
8 | - [UI.Event](https://github.com/angular-ui/ui-event)
9 | - [Google Maps Javascript API 3.x](https://developers.google.com/maps/documentation/javascript/)
10 |
11 | ## Usage
12 |
13 | You can get it from [Bower](http://bower.io/)
14 |
15 | ```sh
16 | bower install angular-ui-map
17 | ```
18 |
19 | This will copy the UI.Map files into a `bower_components` folder, along with its dependencies. Load the script files in your application:
20 |
21 | ```html
22 |
23 |
24 |
25 |
26 | ```
27 |
28 | __Make sure to listen to the [callback parameter when loading the Google Maps API](https://developers.google.com/maps/documentation/javascript/examples/map-simple-async) !
29 | The API must be fully loaded before this module !__
30 | Here we name this callback `onGoogleReady`. To load your angular app after the Google Maps API you can start it with [angular.bootstrap](http://docs.angularjs.org/api/angular.bootstrap).
31 |
32 | ```javascript
33 | function onGoogleReady() {
34 | angular.bootstrap(document.getElementById("map"), ['app.ui-map']);
35 | }
36 | ```
37 |
38 | Add the UI.Map module as a dependency to your application module :
39 |
40 | ```javascript
41 | var myAppModule = angular.module('app.ui-map', ['ui.map']);
42 | ```
43 |
44 | Finally, add the directive to your html:
45 |
46 | ```html
47 |
48 |
49 |
50 | ```
51 | Note that `myMap` will be a [google.maps.Map class](https://developers.google.com/maps/documentation/javascript/reference#Map), and `mapOptions` a [google.maps.MapOptions object](https://developers.google.com/maps/documentation/javascript/reference#MapOptions) (see [below](#options)).
52 |
53 | To see something it's better to add some CSS, like
54 |
55 | ```css
56 | .map-canvas { height: 400px; }
57 | ```
58 |
59 | ## Options
60 |
61 | [google.maps.MapOptions object](https://developers.google.com/maps/documentation/javascript/reference#MapOptions) can be passed through the main directive attribute`ui-map`.
62 |
63 | ```javascript
64 | myAppModule.controller('MapCtrl', ['$scope', function ($scope) {
65 | $scope.mapOptions = {
66 | center: new google.maps.LatLng(35.784, -78.670),
67 | zoom: 15,
68 | mapTypeId: google.maps.MapTypeId.ROADMAP
69 | };
70 | }]);
71 | ```
72 |
73 | ### UI.Event
74 |
75 | [UI.Event](https://github.com/angular-ui/ui-event) allows you to specify custom behavior over user events. You just need to prefix the official event by __map-__ to bind a callback to it.
76 |
77 | For example, the _click_ or *zoom_changed* event of the [google.maps.Map class](https://developers.google.com/maps/documentation/javascript/reference#Map) can be used through the UI.Event object keys __map-click__ and **map-zoom_changed** :
78 |
79 | ```html
80 |
81 |
84 |
85 | ```
86 |
87 |
88 | ## Testing
89 |
90 | We use Karma and jshint to ensure the quality of the code. The easiest way to run these checks is to use grunt:
91 |
92 | ```sh
93 | npm install -g grunt-cli
94 | npm install && bower install
95 | grunt
96 | ```
97 |
98 | The karma task will try to open Firefox and Chrome as browser in which to run the tests. Make sure this is available or change the configuration in `test\karma.conf.js`
99 |
100 |
101 | ### Grunt Serve
102 |
103 | We have one task to serve them all !
104 |
105 | ```sh
106 | grunt serve
107 | ```
108 |
109 | It's equal to run separately:
110 |
111 | * `grunt connect:server` : giving you a development server at [http://127.0.0.1:8000/](http://127.0.0.1:8000/).
112 |
113 | * `grunt karma:server` : giving you a Karma server to run tests (at [http://localhost:9876/](http://localhost:9876/) by default). You can force a test on this server with `grunt karma:unit:run`.
114 |
115 | * `grunt watch` : will automatically test your code and build your demo. You can demo generation with `grunt build:gh-pages`.
116 |
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "author": "AngularUI",
3 | "name": "angular-ui-map",
4 | "version": "0.5.0",
5 | "homepage": "http://angular-ui.github.com",
6 | "keywords": [
7 | "angular",
8 | "angularui",
9 | "map"
10 | ],
11 | "main": "./ui-map.js",
12 | "dependencies": {
13 | "angular": "1.x",
14 | "angular-ui-event": "~1.0.0"
15 | },
16 | "devDependencies": {
17 | "angular-mocks": "1.x"
18 | }
19 | }
--------------------------------------------------------------------------------
/demo/demo.css:
--------------------------------------------------------------------------------
1 | .map {
2 | height: 400px;
3 | width: 600px;
4 | margin: auto;
5 | }
--------------------------------------------------------------------------------
/demo/demo.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |