├── .jshintrc ├── CONTRIBUTING.md ├── README.md ├── html ├── data │ ├── canada.json │ ├── load_feature_service.html │ ├── load_flickr_json.html │ ├── load_geojson.html │ ├── query_feature_service.html │ ├── search_by_distance.html │ ├── usa.json │ └── webmapbyid.html ├── directions │ ├── directions.html │ ├── directions_widget.html │ ├── drivetime.html │ ├── routes_and_barriers.html │ └── traffic.html ├── geocoding │ ├── geosearch.html │ ├── geosearch_category.html │ ├── geosearch_widget.html │ └── reversegeocode.html ├── graphics │ ├── graphics.html │ ├── graphics_marker.html │ └── graphics_toolbar.html ├── maps │ ├── basemap_watercolor.html │ ├── basemaps.html │ ├── basemaps_widget.html │ └── basemaptour.html ├── misc │ ├── autocenter.html │ ├── geolocation.html │ └── show_panel.html └── symbols │ ├── symbols_lines.html │ ├── symbols_polygons.html │ └── symbols_pts.html ├── images ├── black-dot-small.png ├── blue-dot-small.png ├── blue-pin-blank.png ├── blue-pin-house.png ├── blue-pin-radius.png ├── blue-pin-star.png ├── blue-pin.png ├── brown-pin-blank.png ├── brown-pin-house.png ├── brown-pin-start.png ├── favicon.ico ├── green-dot-small.png ├── green-pin-blank.png ├── green-pin-house.png ├── green-pin-star.png ├── green-pin.png ├── grey-pin-blank.png ├── grey-pin-house.png ├── grey-pin-star.png ├── orange-dot-small.png ├── orange-pin-blank.png ├── orange-pin-house.png ├── orange-pin-radius.png ├── orange-pin-star.png ├── orange-pin.png ├── progress.gif ├── purple-pin-blank.png ├── purple-pin-house.png ├── purple-pin-star.png ├── purple-pin.png ├── red-dot-small.png ├── red-pin-blank.png ├── red-pin-house.png ├── red-pin-star.png ├── red-pin.png ├── yellow-pin-blank.png ├── yellow-pin-house.png └── yellow-pin-start.png ├── index.html ├── js ├── oauth │ ├── oAuthHelper.js │ └── oauth-callback.html ├── terraformer-arcgis-parser │ ├── .bower.json │ ├── .gitignore │ ├── .npmingnore │ ├── Gruntfile.js │ ├── README.md │ ├── bower.json │ ├── package.json │ ├── spec │ │ └── arcgisSpec.js │ ├── terraformer-arcgis-parser.js │ └── terraformer-arcgis-parser.min.js └── terraformer │ ├── .bower.json │ ├── .gitignore │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── gruntfile.js │ ├── package.json │ ├── terraformer.js │ └── terraformer.min.js ├── license.txt └── quickstart-map-js.png /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | // JSHint Configuration, esri jsapi 3 | // Modified from [jshint web defaults][1]. 4 | // Differences between the default and our file are noted 5 | // Options that are commented out completely are uneccesary or problematic for our codebase 6 | // [1] : https://github.com/jshint/jshint/blob/2.x/examples/.jshintrc 7 | // See http://jshint.com/docs/ for more details 8 | 9 | "maxerr" : 10, // {int} Maximum error before stopping ** Get ALL the errors ** 10 | 11 | // Enforcing - true = enforce this rule, false = don't enforce this rule 12 | "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.) 13 | "camelcase" : false, // true: Identifiers must be in camelCase 14 | "curly" : true, // true: Require {} for every new block or scope 15 | "eqeqeq" : false, // true: Require triple equals (===) for comparison ** Just use triples with undefined, null, false, 0 and 1 ** 16 | "es3" : true, // true: Adhere to ECMAScript 3 specification ** Still needed until IE8 support is dropped ** 17 | "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty() ** Still needed until IE8 support is dropped ** 18 | "immed" : true, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` ** Avoids confusion and minification errors ** 19 | "latedef" : false, // true: Require variables/functions to be defined before being used 20 | "newcap" : true, // true: Require capitalization of all constructor functions e.g. `new F()` ** Coding style enforcement ** 21 | "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee` 22 | "noempty" : true, // true: Prohibit use of empty blocks 23 | "nonew" : true, // true: Prohibit use of constructors for side-effects (without assignment) ** Coding style enforcement ** 24 | "plusplus" : false, // true: Prohibit use of `++` & `--` 25 | "quotmark" : true, // Quotation mark consistency: ** Use the same style. Doubles should be used in most cases ** 26 | // false : do nothing (default) 27 | // true : ensure whatever is used is consistent 28 | // "single" : require single quotes 29 | // "double" : require double quotes 30 | "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks) 31 | "unused" : "vars", // true: Require all defined variables be used 32 | "strict" : false, // true: Requires all functions run in ES5 Strict Mode ** Dojo style and existing codebase conflicts ** 33 | "trailing" : false, // true: Prohibit trailing whitespaces 34 | //"indent" : 4, // {int} Number of spaces to use for indentation 35 | //"maxparams" : false, // {int} Max number of formal params allowed per function 36 | //"maxdepth" : false, // {int} Max depth of nested blocks (within functions) 37 | //"maxstatements" : false, // {int} Max number statements per function 38 | //"maxcomplexity" : false, // {int} Max cyclomatic complexity per function 39 | //"maxlen" : false, // {int} Max number of characters per line 40 | 41 | // Relaxing - false = continue to enforce this rule, true = don't enforce this rule (relax it) 42 | "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) 43 | "boss" : false, // true: Tolerate assignments where comparisons would be expected 44 | "debug" : false, // true: Allow debugger statements e.g. browser breakpoints. 45 | "eqnull" : true, // true: Tolerate use of `== null` 46 | "es5" : false, // true: Allow ES5 syntax (ex: getters and setters) 47 | "esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`) 48 | "moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features) 49 | // (ex: `for each`, multiple try/catch, function expression…) 50 | "evil" : false, // true: Tolerate use of `eval` and `new Function()` 51 | "expr" : false, // true: Tolerate `ExpressionStatement` as Programs 52 | "funcscope" : true, // true: Tolerate defining variables inside control statements ** Other variable checks keep use from abusing this ** 53 | "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict') 54 | "iterator" : false, // true: Tolerate using the `__iterator__` property 55 | "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block 56 | "laxbreak" : false, // true: Tolerate possibly unsafe line breakings 57 | "laxcomma" : false, // true: Tolerate comma-first style coding 58 | "loopfunc" : true, // true: Tolerate functions being defined in loops ** Almost required in some callback & promise style code ** 59 | "multistr" : false, // true: Tolerate multi-line strings 60 | "proto" : false, // true: Tolerate using the `__proto__` property 61 | "scripturl" : true, // true: Tolerate script-targeted URLs ** If this is being used, there is probably a good reason ** 62 | "smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment 63 | "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` 64 | "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation 65 | "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;` 66 | "validthis" : true, // true: Tolerate using this in a non-constructor function ** We don't run in `strict mode` & coding style conflicts ** 67 | 68 | // Environments 69 | "browser" : true, // Web Browser (window, document, etc) 70 | "devel" : true, // Development/debugging (alert, confirm, etc) 71 | "couch" : false, // CouchDB 72 | "dojo" : false, // Dojo Toolkit ** Don't use global dojo objects. Use AMD style coding ** 73 | "jquery" : false, // jQuery 74 | "mootools" : false, // MooTools 75 | "node" : false, // Node.js 76 | "nonstandard" : false, // Widely adopted globals (escape, unescape, etc) 77 | "prototypejs" : false, // Prototype and Scriptaculous 78 | "rhino" : false, // Rhino 79 | "worker" : false, // Web Workers ** Make a jshint comment when this is `true` ** 80 | "wsh" : false, // Windows Scripting Host 81 | "yui" : false, // Yahoo User Interface 82 | 83 | // Legacy ** According to jshint docs, these options are NOT to be used or relied on. Removing them. 84 | //"nomen" : false, // true: Prohibit dangling `_` in variables 85 | //"onevar" : false, // true: Allow only one `var` statement per function 86 | //"passfail" : false, // true: Stop on first error 87 | //"white" : false, // true: Check against strict whitespace and indentation rules 88 | 89 | // Custom Globals - additional predefined global variables 90 | // Using both `predef` and `globals` to support tools with older jshint parsers 91 | "predef" : [ 92 | "define", 93 | "require" 94 | ], 95 | "globals" : { // ** `false` = don't allow variable to be redefined locally 96 | "define": false, 97 | "require": false 98 | } 99 | } -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Esri welcomes contributions from anyone and everyone. Please see our [guidelines for contributing](https://github.com/esri/contributing). 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # quickstart-map-js 2 | 3 | A simple set of examples that illustrate how to accomplish different mapping (and GIS) tasks with the [ArcGIS API for JavaScript](http://developers.arcgis.com) and [ArcGIS Online Services](https://developers.arcgis.com/en/features/). Also, learn how to style your apps nicely with the [Bootstrap 3.x framework](http://getbootstrap.com). 4 | 5 | [View the samples](http://esri.github.com/quickstart-map-js/index.html) 6 | 7 | ![App](https://raw.github.com/Esri/quickstart-map-js/master/quickstart-map-js.png) 8 | 9 | ## Features 10 | * Basemaps - Set different basemaps interactively 11 | * Geolocation - Find and display your geolocation 12 | * Place Finding - Find places or geocode an address 13 | * Geocode - Forward and reverse geocoding 14 | * Directions - Get directions, use direction widgets, multi-directions with barriers 15 | * Graphics - Draw points, lines and polygons 16 | * Maps - Load and auto resize and center maps 17 | * Cloud - Draw and query features stored in the ArcGIS Online cloud 18 | * Data - Load JSON services 19 | * Popups - Format and position info windows and your own map pins 20 | * Map Pins - You can use new Esri markers for point locations 21 | 22 | NOTE: All examples are built with [Bootstrap 3.x styles](http://getbootstrap.com). To build fully responsive maps for all devices, see [Bootstrap-map-js](http://github.com/esri/bootstrap-map-js). 23 | 24 | ## Instructions 25 | 26 | 1. Fork and then clone the repo. 27 | 2. Try the examples locally or try them [here](http://esri.github.com/quickstart-map-js/index.html). 28 | 29 | NOTE: You should just be able to cut-and-paste and run the examples in JSFiddle! 30 | 31 | ## Example 32 | 33 | ``` HTML 34 | 35 | 36 | 37 | 38 | 39 | 40 | Basemaps 41 | 42 | 43 | 44 | 45 | 46 | 47 | 53 | 54 | 55 | 56 | 90 | 91 | 92 |
93 |
94 |

Basemaps

95 |
96 |
97 |
98 |
99 | 100 | 101 | 102 | 103 |
104 |
105 |
106 |
107 | 108 | 109 |
110 |
111 |
112 |
113 |
114 | 115 | 116 | ``` 117 | 118 | ## Requirements 119 | 120 | * Notepad or your favorite HTML editor 121 | * Web browser with access to the Internet 122 | * All samples reference: 123 | 124 | [Bootstrap 3.x: Web Framework CSS](http://getbootstrap.com) 125 | ``` 126 | //netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css 127 | ``` 128 | 129 | [Bootstrap-map-js: Map, Popup and Dijit CSS](http://github.com/esri/bootstrap-map-js) 130 | ``` 131 | //esri.github.io/bootstrap-map-js/src/css/bootstrapmap.css 132 | ``` 133 | 134 | ## Resources 135 | 136 | * [ArcGIS for JavaScript API Resource Center](http://developers.arcgis.com) 137 | * [ArcGIS Blog](http://blogs.esri.com/esri/arcgis/) 138 | * [twitter@esri](http://twitter.com/esri) 139 | 140 | ## Issues 141 | 142 | Find a bug or want to request a new feature? Please let us know by submitting an issue. Thank you! 143 | 144 | * Directions - Uses OAuth and requires you to sign up for a [free ArcGIS Developer Subscription](https://developers.arcgis.com/en/sign-up/) to use the app. 145 | 146 | ## Contributing 147 | 148 | Anyone and everyone is welcome to contribute. Please see our [guidelines for contributing](https://github.com/esri/contributing). 149 | 150 | ## Licensing 151 | Copyright 2013 Esri 152 | 153 | Licensed under the Apache License, Version 2.0 (the "License"); 154 | you may not use this file except in compliance with the License. 155 | You may obtain a copy of the License at 156 | 157 | http://www.apache.org/licenses/LICENSE-2.0 158 | 159 | Unless required by applicable law or agreed to in writing, software 160 | distributed under the License is distributed on an "AS IS" BASIS, 161 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 162 | See the License for the specific language governing permissions and 163 | limitations under the License. 164 | 165 | A copy of the license is available in the repository's [license.txt]( https://raw.github.com/Esri/quickstart-map-js/master/license.txt) file. 166 | 167 | [](Esri Tags: ArcGIS Web Mapping QuickStart) 168 | [](Esri Language: JavaScript) 169 | -------------------------------------------------------------------------------- /html/data/load_feature_service.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Load Feature Service 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 108 | 109 | 110 |
111 |
112 |

Load Feature Service

113 |
114 |
115 |

ArcGIS REST endpoint:

116 |
117 | 121 |
122 | 123 | 124 |
125 |
126 |
127 | 128 | 129 | -------------------------------------------------------------------------------- /html/data/load_flickr_json.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Load JSON Service 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 26 | 27 | 28 | 154 | 155 | 156 |
157 |
158 |

Load JSON Service

159 |
160 |
161 |

Search Flickr and add results as graphics.

162 |
163 | 164 | 165 | 166 | 167 |
168 |
169 |
170 |
171 | 172 | 173 | -------------------------------------------------------------------------------- /html/data/load_geojson.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Load GeoJSON 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 223 | 224 | 225 |
226 |
227 |

Load GeoJSON

228 |
229 |
230 |

This sample uses Terraformer to convert GeoJSON to ArcGIS JSON.

231 |
232 | 233 | 234 |
235 |
236 |
237 |
238 | 239 | 240 | -------------------------------------------------------------------------------- /html/data/query_feature_service.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Query Feature Service 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 130 | 131 | 132 |
133 |
134 |

Query Feature Service

135 |
136 |
137 |
138 | 146 |
147 | 148 | 149 |
150 |
151 |
152 | 153 | 154 | -------------------------------------------------------------------------------- /html/data/search_by_distance.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Search By Distance 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 136 | 137 | 138 |
139 |
140 |

Search By Distance

141 |
142 |
143 |

Drag on the map to search for cities.

144 |
145 | 151 |
152 |
153 |
154 |
155 | 156 | 157 | -------------------------------------------------------------------------------- /html/data/usa.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[ 2 | {"type":"Feature","id":"USA","properties":{"name":"United States of America"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.54211,19.08348],[-155.68817,18.91619],[-155.93665,19.05939],[-155.90806,19.33888],[-156.07347,19.70294],[-156.02368,19.81422],[-155.85008,19.97729],[-155.91907,20.17395],[-155.86108,20.26721],[-155.78505,20.2487],[-155.40214,20.07975],[-155.22452,19.99302],[-155.06226,19.8591],[-154.80741,19.50871],[-154.83147,19.45328],[-155.22217,19.23972],[-155.54211,19.08348]]],[[[-156.07926,20.64397],[-156.41445,20.57241],[-156.58673,20.783],[-156.70167,20.8643],[-156.71055,20.92676],[-156.61258,21.01249],[-156.25711,20.91745],[-155.99566,20.76404],[-156.07926,20.64397]]],[[[-156.75824,21.17684],[-156.78933,21.06873],[-157.32521,21.09777],[-157.25027,21.21958],[-156.75824,21.17684]]],[[[-157.65283,21.32217],[-157.70703,21.26442],[-157.7786,21.27729],[-158.12667,21.31244],[-158.2538,21.53919],[-158.29265,21.57912],[-158.0252,21.71696],[-157.94161,21.65272],[-157.65283,21.32217]]],[[[-159.34512,21.982],[-159.46372,21.88299],[-159.80051,22.06533],[-159.74877,22.1382],[-159.5962,22.23618],[-159.36569,22.21494],[-159.34512,21.982]]],[[[-94.81758,49.38905],[-94.64,48.84],[-94.32914,48.67074],[-93.63087,48.60926],[-92.61,48.45],[-91.64,48.14],[-90.83,48.27],[-89.6,48.01],[-89.272917,48.019808],[-88.378114,48.302918],[-87.439793,47.94],[-86.461991,47.553338],[-85.652363,47.220219],[-84.87608,46.900083],[-84.779238,46.637102],[-84.543749,46.538684],[-84.6049,46.4396],[-84.3367,46.40877],[-84.14212,46.512226],[-84.091851,46.275419],[-83.890765,46.116927],[-83.616131,46.116927],[-83.469551,45.994686],[-83.592851,45.816894],[-82.550925,45.347517],[-82.337763,44.44],[-82.137642,43.571088],[-82.43,42.98],[-82.9,42.43],[-83.12,42.08],[-83.142,41.975681],[-83.02981,41.832796],[-82.690089,41.675105],[-82.439278,41.675105],[-81.277747,42.209026],[-80.247448,42.3662],[-78.939362,42.863611],[-78.92,42.965],[-79.01,43.27],[-79.171674,43.466339],[-78.72028,43.625089],[-77.737885,43.629056],[-76.820034,43.628784],[-76.5,44.018459],[-76.375,44.09631],[-75.31821,44.81645],[-74.867,45.00048],[-73.34783,45.00738],[-71.50506,45.0082],[-71.405,45.255],[-71.08482,45.30524],[-70.66,45.46],[-70.305,45.915],[-69.99997,46.69307],[-69.237216,47.447781],[-68.905,47.185],[-68.23444,47.35486],[-67.79046,47.06636],[-67.79134,45.70281],[-67.13741,45.13753],[-66.96466,44.8097],[-68.03252,44.3252],[-69.06,43.98],[-70.11617,43.68405],[-70.645476,43.090238],[-70.81489,42.8653],[-70.825,42.335],[-70.495,41.805],[-70.08,41.78],[-70.185,42.145],[-69.88497,41.92283],[-69.96503,41.63717],[-70.64,41.475],[-71.12039,41.49445],[-71.86,41.32],[-72.295,41.27],[-72.87643,41.22065],[-73.71,40.931102],[-72.24126,41.11948],[-71.945,40.93],[-73.345,40.63],[-73.982,40.628],[-73.952325,40.75075],[-74.25671,40.47351],[-73.96244,40.42763],[-74.17838,39.70926],[-74.90604,38.93954],[-74.98041,39.1964],[-75.20002,39.24845],[-75.52805,39.4985],[-75.32,38.96],[-75.071835,38.782032],[-75.05673,38.40412],[-75.37747,38.01551],[-75.94023,37.21689],[-76.03127,37.2566],[-75.72205,37.93705],[-76.23287,38.319215],[-76.35,39.15],[-76.542725,38.717615],[-76.32933,38.08326],[-76.989998,38.239992],[-76.30162,37.917945],[-76.25874,36.9664],[-75.9718,36.89726],[-75.86804,36.55125],[-75.72749,35.55074],[-76.36318,34.80854],[-77.397635,34.51201],[-78.05496,33.92547],[-78.55435,33.86133],[-79.06067,33.49395],[-79.20357,33.15839],[-80.301325,32.509355],[-80.86498,32.0333],[-81.33629,31.44049],[-81.49042,30.72999],[-81.31371,30.03552],[-80.98,29.18],[-80.535585,28.47213],[-80.53,28.04],[-80.056539,26.88],[-80.088015,26.205765],[-80.13156,25.816775],[-80.38103,25.20616],[-80.68,25.08],[-81.17213,25.20126],[-81.33,25.64],[-81.71,25.87],[-82.24,26.73],[-82.70515,27.49504],[-82.85526,27.88624],[-82.65,28.55],[-82.93,29.1],[-83.70959,29.93656],[-84.1,30.09],[-85.10882,29.63615],[-85.28784,29.68612],[-85.7731,30.15261],[-86.4,30.4],[-87.53036,30.27433],[-88.41782,30.3849],[-89.18049,30.31598],[-89.593831,30.159994],[-89.413735,29.89419],[-89.43,29.48864],[-89.21767,29.29108],[-89.40823,29.15961],[-89.77928,29.30714],[-90.15463,29.11743],[-90.880225,29.148535],[-91.626785,29.677],[-92.49906,29.5523],[-93.22637,29.78375],[-93.84842,29.71363],[-94.69,29.48],[-95.60026,28.73863],[-96.59404,28.30748],[-97.14,27.83],[-97.37,27.38],[-97.38,26.69],[-97.33,26.21],[-97.14,25.87],[-97.53,25.84],[-98.24,26.06],[-99.02,26.37],[-99.3,26.84],[-99.52,27.54],[-100.11,28.11],[-100.45584,28.69612],[-100.9576,29.38071],[-101.6624,29.7793],[-102.48,29.76],[-103.11,28.97],[-103.94,29.27],[-104.45697,29.57196],[-104.70575,30.12173],[-105.03737,30.64402],[-105.63159,31.08383],[-106.1429,31.39995],[-106.50759,31.75452],[-108.24,31.754854],[-108.24194,31.34222],[-109.035,31.34194],[-111.02361,31.33472],[-113.30498,32.03914],[-114.815,32.52528],[-114.72139,32.72083],[-115.99135,32.61239],[-117.12776,32.53534],[-117.295938,33.046225],[-117.944,33.621236],[-118.410602,33.740909],[-118.519895,34.027782],[-119.081,34.078],[-119.438841,34.348477],[-120.36778,34.44711],[-120.62286,34.60855],[-120.74433,35.15686],[-121.71457,36.16153],[-122.54747,37.55176],[-122.51201,37.78339],[-122.95319,38.11371],[-123.7272,38.95166],[-123.86517,39.76699],[-124.39807,40.3132],[-124.17886,41.14202],[-124.2137,41.99964],[-124.53284,42.76599],[-124.14214,43.70838],[-124.020535,44.615895],[-123.89893,45.52341],[-124.079635,46.86475],[-124.39567,47.72017],[-124.68721,48.184433],[-124.566101,48.379715],[-123.12,48.04],[-122.58736,47.096],[-122.34,47.36],[-122.5,48.18],[-122.84,49],[-120,49],[-117.03121,49],[-116.04818,49],[-113,49],[-110.05,49],[-107.05,49],[-104.04826,48.99986],[-100.65,49],[-97.22872,49.0007],[-95.15907,49],[-95.15609,49.38425],[-94.81758,49.38905]]],[[[-153.006314,57.115842],[-154.00509,56.734677],[-154.516403,56.992749],[-154.670993,57.461196],[-153.76278,57.816575],[-153.228729,57.968968],[-152.564791,57.901427],[-152.141147,57.591059],[-153.006314,57.115842]]],[[[-165.579164,59.909987],[-166.19277,59.754441],[-166.848337,59.941406],[-167.455277,60.213069],[-166.467792,60.38417],[-165.67443,60.293607],[-165.579164,59.909987]]],[[[-171.731657,63.782515],[-171.114434,63.592191],[-170.491112,63.694975],[-169.682505,63.431116],[-168.689439,63.297506],[-168.771941,63.188598],[-169.52944,62.976931],[-170.290556,63.194438],[-170.671386,63.375822],[-171.553063,63.317789],[-171.791111,63.405846],[-171.731657,63.782515]]],[[[-155.06779,71.147776],[-154.344165,70.696409],[-153.900006,70.889989],[-152.210006,70.829992],[-152.270002,70.600006],[-150.739992,70.430017],[-149.720003,70.53001],[-147.613362,70.214035],[-145.68999,70.12001],[-144.920011,69.989992],[-143.589446,70.152514],[-142.07251,69.851938],[-140.985988,69.711998],[-140.985988,69.711998],[-140.992499,66.000029],[-140.99777,60.306397],[-140.012998,60.276838],[-139.039,60.000007],[-138.34089,59.56211],[-137.4525,58.905],[-136.47972,59.46389],[-135.47583,59.78778],[-134.945,59.27056],[-134.27111,58.86111],[-133.355549,58.410285],[-132.73042,57.69289],[-131.70781,56.55212],[-130.00778,55.91583],[-129.979994,55.284998],[-130.53611,54.802753],[-131.085818,55.178906],[-131.967211,55.497776],[-132.250011,56.369996],[-133.539181,57.178887],[-134.078063,58.123068],[-135.038211,58.187715],[-136.628062,58.212209],[-137.800006,58.499995],[-139.867787,59.537762],[-140.825274,59.727517],[-142.574444,60.084447],[-143.958881,59.99918],[-145.925557,60.45861],[-147.114374,60.884656],[-148.224306,60.672989],[-148.018066,59.978329],[-148.570823,59.914173],[-149.727858,59.705658],[-150.608243,59.368211],[-151.716393,59.155821],[-151.859433,59.744984],[-151.409719,60.725803],[-150.346941,61.033588],[-150.621111,61.284425],[-151.895839,60.727198],[-152.57833,60.061657],[-154.019172,59.350279],[-153.287511,58.864728],[-154.232492,58.146374],[-155.307491,57.727795],[-156.308335,57.422774],[-156.556097,56.979985],[-158.117217,56.463608],[-158.433321,55.994154],[-159.603327,55.566686],[-160.28972,55.643581],[-161.223048,55.364735],[-162.237766,55.024187],[-163.069447,54.689737],[-164.785569,54.404173],[-164.942226,54.572225],[-163.84834,55.039431],[-162.870001,55.348043],[-161.804175,55.894986],[-160.563605,56.008055],[-160.07056,56.418055],[-158.684443,57.016675],[-158.461097,57.216921],[-157.72277,57.570001],[-157.550274,58.328326],[-157.041675,58.918885],[-158.194731,58.615802],[-158.517218,58.787781],[-159.058606,58.424186],[-159.711667,58.93139],[-159.981289,58.572549],[-160.355271,59.071123],[-161.355003,58.670838],[-161.968894,58.671665],[-162.054987,59.266925],[-161.874171,59.633621],[-162.518059,59.989724],[-163.818341,59.798056],[-164.662218,60.267484],[-165.346388,60.507496],[-165.350832,61.073895],[-166.121379,61.500019],[-165.734452,62.074997],[-164.919179,62.633076],[-164.562508,63.146378],[-163.753332,63.219449],[-163.067224,63.059459],[-162.260555,63.541936],[-161.53445,63.455817],[-160.772507,63.766108],[-160.958335,64.222799],[-161.518068,64.402788],[-160.777778,64.788604],[-161.391926,64.777235],[-162.45305,64.559445],[-162.757786,64.338605],[-163.546394,64.55916],[-164.96083,64.446945],[-166.425288,64.686672],[-166.845004,65.088896],[-168.11056,65.669997],[-166.705271,66.088318],[-164.47471,66.57666],[-163.652512,66.57666],[-163.788602,66.077207],[-161.677774,66.11612],[-162.489715,66.735565],[-163.719717,67.116395],[-164.430991,67.616338],[-165.390287,68.042772],[-166.764441,68.358877],[-166.204707,68.883031],[-164.430811,68.915535],[-163.168614,69.371115],[-162.930566,69.858062],[-161.908897,70.33333],[-160.934797,70.44769],[-159.039176,70.891642],[-158.119723,70.824721],[-156.580825,71.357764],[-155.06779,71.147776]]]]}} 3 | ]} -------------------------------------------------------------------------------- /html/data/webmapbyid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Load Webmap 8 | 9 | 10 | 11 | 12 | 13 | 14 | 33 | 34 | 35 | 36 | 138 | 139 | 140 |
141 |
142 |
143 |

144 |
145 |
146 |

Load Webmap by ID

147 |
148 |
149 |
150 | 153 | 154 | 155 |
156 |
157 |
158 |
159 | 160 | NOTE: If you would like to create a responsive map that automatically resizes, please see Bootstrap-map-js. 161 |
162 |
163 |
164 |
165 |
166 |

167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 | 176 | 177 | -------------------------------------------------------------------------------- /html/directions/directions_widget.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Directions Widget 8 | 9 | 10 | 11 | 12 | 13 | 19 | 20 | 21 | 22 | 52 | 53 | 54 |
55 |
56 |

Directions Widget

57 |
58 |
59 |
60 |
61 |
62 |
63 | 64 | 65 | -------------------------------------------------------------------------------- /html/directions/drivetime.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Find Drive Times 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 121 | 122 | 123 |
124 |
125 |

Get Drive Times

126 |
127 |
128 |

Click on the map to create a drivetime polygon of 1, 2 and 3 minutes.

129 | 130 |
131 |
132 |
133 | 134 | 135 | -------------------------------------------------------------------------------- /html/directions/traffic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Traffic 8 | 9 | 10 | 11 | 12 | 13 | 14 | 33 | 34 | 35 | 36 | 104 | 105 | 106 |
107 |
108 |

109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | 117 | 135 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /html/geocoding/geosearch.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Find Places 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 147 | 148 | 149 |
150 |
151 |

Find Places

152 |
153 |
154 |
155 | 156 |
157 |
158 |
159 | 162 |
163 | 164 | 165 |
166 |
167 |
168 |
169 | 170 | 171 | -------------------------------------------------------------------------------- /html/geocoding/geosearch_category.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Find Places (by Category) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 157 | 158 | 159 |
160 |
161 |

Find Places by Category

162 |
163 |
164 |
165 | 176 |
177 |
178 |
179 | 182 |
183 | 184 | 185 |

More information on categories
can be found here 186 |
187 |
188 |
189 |
190 | 191 | 192 | -------------------------------------------------------------------------------- /html/geocoding/geosearch_widget.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Find Places Widget 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 150 | 151 | 152 |
153 |
154 |

Find Places Widget

155 |
156 |
157 |
158 | 159 |
160 |
161 |
162 | 163 |
164 | 165 | 166 |
167 |
168 |
169 |
170 | 171 | 172 | -------------------------------------------------------------------------------- /html/geocoding/reversegeocode.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Find Address 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 143 | 144 | 145 |
146 |
147 |

Find Address

148 |
149 |
150 |

151 | Click on the map to geocode a location. 152 |

153 | 154 |
155 |
156 |
157 | 158 | 159 | -------------------------------------------------------------------------------- /html/graphics/graphics_marker.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Align Marker Symbol 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 130 | 131 | 132 |
133 |
134 |

Align Marker and Popup

135 |
136 |
137 |
138 |
139 | 140 |
141 | 142 |
143 | 144 |
145 | 146 |
147 |
148 |
149 | 150 |
151 | 152 |
153 | 154 |
155 | 156 |
157 |
158 |
159 | 160 |
161 | 162 |
163 | 164 |
165 | 166 |
167 |
168 |
169 | 170 |
171 | 172 |
173 |
174 |
175 |
176 | 177 |
178 |
179 |
180 |
181 |
182 |
183 | 184 | 185 | -------------------------------------------------------------------------------- /html/graphics/graphics_toolbar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Graphics Toolbar 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 140 | 141 | 142 |
143 |
144 |

Draw Graphics Widget

145 |
146 |
147 |
148 |
149 | 150 | 151 | 152 |
153 |
154 |
155 | 170 |
171 |

172 |
Click a button to start.
173 |
174 |
175 |
176 | 177 | 178 | 179 | -------------------------------------------------------------------------------- /html/maps/basemap_watercolor.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Watercolor Basemap 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 47 | 48 | 49 |
50 |
51 |

Watercolor Basemap

52 |
53 |
54 |

Stamen Watercolor tile set as a custom basemap.

55 |
56 |
57 |
58 | 59 | 60 | -------------------------------------------------------------------------------- /html/maps/basemaps.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Basemaps 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 57 | 58 | 59 |
60 |
61 |

Basemaps

62 |
63 |
64 |
65 |
66 | 67 | 68 | 69 | 70 |
71 |
72 |
73 |
74 | 75 | 76 |
77 |
78 |
79 |
80 |
81 | 82 | 83 | -------------------------------------------------------------------------------- /html/maps/basemaps_widget.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Basemaps Widget 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 50 | 51 | 52 |
53 |
54 |

Basemaps

55 |
56 |
57 |
58 |
59 |
60 |
61 | 62 | 63 | -------------------------------------------------------------------------------- /html/maps/basemaptour.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Basemap Tour 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 179 | 180 | 181 |
182 |
183 |

Basemaps World Tour

184 |
185 |
186 |
187 |
188 | 189 | 190 | 191 |
192 |
193 |
194 |
195 | 196 | 197 | 198 |
199 |
200 |
201 | 202 |
203 | 204 |
205 | 206 |
207 |
208 |
209 |
210 | 211 | 212 | -------------------------------------------------------------------------------- /html/misc/autocenter.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Auto Center 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 122 | 123 | 124 |
125 |
126 |

Auto-recenter Map

127 |
128 |
129 |

Resize the browser or screen.

130 |
131 | 132 |
133 |
134 |
135 |
136 | 137 | -------------------------------------------------------------------------------- /html/misc/geolocation.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Geolocation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 104 | 105 | 106 |
107 |
108 |

HTML5 Geolocation

109 |
110 |
111 | 112 | 113 |
114 |
115 |
116 | 117 | -------------------------------------------------------------------------------- /html/misc/show_panel.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Basemaps - Show Panel 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 69 | 70 | 71 |
72 |
73 |

Show - Hide Panel

74 | 77 |
78 |
79 |
80 |
81 | 82 | 83 | 84 | 85 |
86 |
87 |
88 |
89 | 90 | 91 |
92 |
93 |
94 |
95 |
96 | 97 | 98 | -------------------------------------------------------------------------------- /html/symbols/symbols_lines.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Line Symbols 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 105 | 106 | 107 |
108 |
109 |

Lines

110 |
111 |
112 |
113 |
114 | Apply different symbols based on feature attributes

115 |
116 |
117 | 121 |
122 |
123 |
124 |
125 |
126 | 127 | 128 | -------------------------------------------------------------------------------- /html/symbols/symbols_polygons.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Polygon Symbols 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 118 | 119 | 120 |
121 |
122 |

Polygons

123 |
124 |
125 |
126 |
127 | Apply symbols to features based on an attribute threshold. 128 |

129 | Here we use the median age from the 2000 Census. 130 |
131 |
132 |
133 |
134 | 138 |
139 |
140 |
141 |
142 |
143 | 144 | 145 | -------------------------------------------------------------------------------- /html/symbols/symbols_pts.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Point Symbols 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | 108 | 109 | 110 |
111 |
112 |

Points

113 |
114 |
115 |
116 |
117 | Apply different symbols to point graphics in the map

118 |
119 |
120 | 125 |
126 |
127 |
128 |
129 |
130 | 131 | 132 | -------------------------------------------------------------------------------- /images/black-dot-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/black-dot-small.png -------------------------------------------------------------------------------- /images/blue-dot-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/blue-dot-small.png -------------------------------------------------------------------------------- /images/blue-pin-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/blue-pin-blank.png -------------------------------------------------------------------------------- /images/blue-pin-house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/blue-pin-house.png -------------------------------------------------------------------------------- /images/blue-pin-radius.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/blue-pin-radius.png -------------------------------------------------------------------------------- /images/blue-pin-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/blue-pin-star.png -------------------------------------------------------------------------------- /images/blue-pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/blue-pin.png -------------------------------------------------------------------------------- /images/brown-pin-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/brown-pin-blank.png -------------------------------------------------------------------------------- /images/brown-pin-house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/brown-pin-house.png -------------------------------------------------------------------------------- /images/brown-pin-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/brown-pin-start.png -------------------------------------------------------------------------------- /images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/favicon.ico -------------------------------------------------------------------------------- /images/green-dot-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/green-dot-small.png -------------------------------------------------------------------------------- /images/green-pin-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/green-pin-blank.png -------------------------------------------------------------------------------- /images/green-pin-house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/green-pin-house.png -------------------------------------------------------------------------------- /images/green-pin-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/green-pin-star.png -------------------------------------------------------------------------------- /images/green-pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/green-pin.png -------------------------------------------------------------------------------- /images/grey-pin-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/grey-pin-blank.png -------------------------------------------------------------------------------- /images/grey-pin-house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/grey-pin-house.png -------------------------------------------------------------------------------- /images/grey-pin-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/grey-pin-star.png -------------------------------------------------------------------------------- /images/orange-dot-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/orange-dot-small.png -------------------------------------------------------------------------------- /images/orange-pin-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/orange-pin-blank.png -------------------------------------------------------------------------------- /images/orange-pin-house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/orange-pin-house.png -------------------------------------------------------------------------------- /images/orange-pin-radius.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/orange-pin-radius.png -------------------------------------------------------------------------------- /images/orange-pin-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/orange-pin-star.png -------------------------------------------------------------------------------- /images/orange-pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/orange-pin.png -------------------------------------------------------------------------------- /images/progress.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/progress.gif -------------------------------------------------------------------------------- /images/purple-pin-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/purple-pin-blank.png -------------------------------------------------------------------------------- /images/purple-pin-house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/purple-pin-house.png -------------------------------------------------------------------------------- /images/purple-pin-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/purple-pin-star.png -------------------------------------------------------------------------------- /images/purple-pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/purple-pin.png -------------------------------------------------------------------------------- /images/red-dot-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/red-dot-small.png -------------------------------------------------------------------------------- /images/red-pin-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/red-pin-blank.png -------------------------------------------------------------------------------- /images/red-pin-house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/red-pin-house.png -------------------------------------------------------------------------------- /images/red-pin-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/red-pin-star.png -------------------------------------------------------------------------------- /images/red-pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/red-pin.png -------------------------------------------------------------------------------- /images/yellow-pin-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/yellow-pin-blank.png -------------------------------------------------------------------------------- /images/yellow-pin-house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/yellow-pin-house.png -------------------------------------------------------------------------------- /images/yellow-pin-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/images/yellow-pin-start.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Mapping Examples 11 | 12 | 13 | 34 | 35 | 36 | Fork me on GitHub 37 |
38 |
39 |

ArcGIS JavaScript Mapping Examples

40 |

Simple apps to get you going fast!

41 |
42 |
43 |
44 |
45 |

Maps

46 |

47 | Basemaps 48 | Basemaps Widget 49 | Watercolor Basemap 50 | Basemap Tour 51 | More Samples... 52 |

53 |
54 |
55 |
56 |
57 |

Geocoding

58 |

59 | Find Places 60 | Find Places Widget 61 | Find Address 62 | Find by Category 63 | More Samples... 64 |

65 |
66 |
67 |
68 |
69 |
70 |
71 |

Directions

72 |

73 | Directions 74 | Directions Widget 75 | Drive Time 76 | Routes & Barriers 77 | More Samples... 78 |

79 |
80 |
81 |
82 |
83 |

Data and Services

84 |

85 | Load GeoJSON 86 | Load Flickr JSON 87 | Load Webmap 88 | Load Feature Service 89 | More Samples... 90 |

91 |
92 |
93 |
94 |
95 |
96 |
97 |

Query

98 |

99 | Shape Query 100 | SQL Query 101 | Search By Distance 102 | Show Table 103 | More Samples... 104 |

105 |
106 |
107 |
108 |
109 |

Colors and Symbols

110 |

111 | Point Symbols 112 | Line Symbols 113 | Polygon Symbols 114 | More Samples... 115 |

116 |
117 |
118 |
119 |
120 |
121 |
122 |

Graphics

123 |

124 | Draw Graphics 125 | Draw Graphics Widget 126 | Align Marker Symbol 127 | More Samples... 128 |

129 |
130 |
131 |
132 |
133 |

Misc

134 |

135 | HTML 5 Geolocation 136 | Auto Center Map 137 | Show Hide Panel 138 |

139 |
140 |
141 |
142 |
143 | 144 | -------------------------------------------------------------------------------- /js/oauth/oAuthHelper.js: -------------------------------------------------------------------------------- 1 | define( 2 | [ 3 | "dojo/_base/lang", 4 | "dojo/_base/json", 5 | "dojo/_base/url", 6 | "dojo/cookie", 7 | "dojo/Deferred", 8 | "dojo/io-query", 9 | "esri/IdentityManager" 10 | ], 11 | function(lang, dojoJson, Url, cookie, Deferred, ioquery, idManager) { 12 | 13 | var oAuthHelper = { 14 | 15 | portal: "http://www.arcgis.com", 16 | 17 | popupCallbackPage: window.location.protocol + "//" + 18 | window.location.host + 19 | window.location.pathname.replace(/\/[^\/]+$/, "") + 20 | "/oauth-callback.html", 21 | 22 | // popupCallbackPage: window.location.protocol + "//" + 23 | // window.location.host + 24 | // "/GitHub/quickstart-map-js/js/oAuth" + 25 | // "/oauth-callback.html", 26 | 27 | init: function(parameters) { 28 | /** 29 | * parameters = { 30 | * appId: "", 31 | * portal: "", // deafult is "http://www.arcgis.com" 32 | * expiration: , // in minutes 33 | * popup: 34 | * } 35 | */ 36 | 37 | lang.mixin(this, parameters); 38 | this.portalUrl = this.portal + "/sharing/rest"; 39 | 40 | // Read OAuth response from the page url fragment if available, 41 | // and register with identity manager 42 | this.checkOAuthResponse(window.location.href, true); 43 | 44 | // Read token from cookie if available, and register 45 | // with identity manager 46 | this.checkCookie(); 47 | 48 | // You don't need this if you require your users to sign-in 49 | // before using the app. This override helps trigger OAuth 50 | // flow instead of the legacy generateToken flow. 51 | this.overrideIdentityManager(); 52 | 53 | this.popupCallbackPage = this.redirect_uri; // Als - allows callback.html to live outside of current directory! 54 | }, 55 | 56 | isSignedIn: function() { 57 | return !!idManager.findCredential(this.portalUrl); 58 | }, 59 | 60 | signIn: function() { 61 | var deferred = (this.deferred = new Deferred()); 62 | 63 | var authParameters = { 64 | client_id: this.appId, 65 | response_type: "token", 66 | expiration: this.expiration, // in minutes. Default is 30. 67 | redirect_uri: this.popup ? 68 | this.popupCallbackPage : 69 | window.location.href.replace(/#.*$/, "") 70 | }; 71 | 72 | var authUrl = this.portal.replace(/^http:/i, "https:") + 73 | "/sharing/oauth2/authorize?" + 74 | ioquery.objectToQuery(authParameters); 75 | 76 | if (this.popup) { 77 | // Internet Explorer 8 throws error if windowName 78 | // (second argument below) has hyphen 79 | window.open( 80 | authUrl, 81 | "esrioauth", 82 | "width=480,height=320,location=yes,status=yes,scrollbars=yes" 83 | ); 84 | } 85 | else { 86 | window.location = authUrl; 87 | } 88 | 89 | return deferred; 90 | }, 91 | 92 | signOut: function() { 93 | // Delete the cookie 94 | cookie("arcgis_auth", null, { 95 | expires: -1, 96 | path: "/", 97 | domain: document.domain 98 | }); 99 | 100 | window.location.reload(); 101 | }, 102 | 103 | checkOAuthResponse: function(url, clearHash) { 104 | // This method will be called from popup callback page as well 105 | 106 | var oauthResponse = this.parseFragment(url); 107 | 108 | if (oauthResponse) { 109 | if (clearHash) { // redirection flow 110 | // Remove OAuth bits from the URL fragment 111 | window.location.hash = ""; 112 | } 113 | 114 | if (oauthResponse.error) { 115 | var error = new Error(oauthResponse.error); 116 | error.details = [ oauthResponse.error_description ]; 117 | 118 | if (this.deferred) { 119 | this.deferred.reject(error); 120 | } 121 | } 122 | else { 123 | var credential = this.registerToken(oauthResponse); 124 | 125 | // User checked "Keep me signed in" option 126 | if (oauthResponse.persist) { 127 | cookie("arcgis_auth", dojoJson.toJson(oauthResponse), { 128 | expires: new Date(oauthResponse.expires_at), 129 | path: "/", 130 | domain: document.domain 131 | }); 132 | 133 | console.log("[Cookie] Write: ", cookie("arcgis_auth")); 134 | } 135 | 136 | if (this.deferred) { 137 | this.deferred.resolve(credential); 138 | } 139 | } 140 | } 141 | }, 142 | 143 | checkCookie: function() { 144 | var ckie = cookie("arcgis_auth"); 145 | 146 | if (ckie) { 147 | console.log("[Cookie] Read: ", ckie); 148 | 149 | var oauthResponse = dojoJson.fromJson(ckie); 150 | this.registerToken(oauthResponse); 151 | } 152 | }, 153 | 154 | registerToken: function(oauthResponse) { 155 | // Register the access token with Identity Manager, so that 156 | // it can be added to all ArcGIS Online REST API requests 157 | 158 | idManager.registerToken({ 159 | server: this.portalUrl, 160 | userId: oauthResponse.username, 161 | token: oauthResponse.access_token, 162 | expires: oauthResponse.expires_at, 163 | ssl: oauthResponse.ssl 164 | }); 165 | 166 | var credential = idManager.findCredential(this.portalUrl, oauthResponse.username); 167 | 168 | console.log("Token registered with Identity Manager: ", credential); 169 | return credential; 170 | }, 171 | 172 | parseFragment: function(url) { 173 | var urlObj = new Url(url), 174 | fragment = urlObj.fragment ? ioquery.queryToObject(urlObj.fragment) : null; 175 | 176 | if (fragment) { 177 | if (fragment.access_token) { 178 | console.log("[OAuth Response]: ", fragment); 179 | 180 | // Convert from String to Number 181 | fragment.expires_in = Number(fragment.expires_in); 182 | 183 | // Calculate universal time 184 | fragment.expires_at = (new Date()).getTime() + (fragment.expires_in * 1000); 185 | 186 | fragment.ssl = (fragment.ssl === "true"); 187 | } 188 | else if (fragment.error) { 189 | console.log("[OAuth Error]: ", fragment.error, " - ", fragment.error_description); 190 | } 191 | 192 | return fragment; 193 | } 194 | }, 195 | 196 | overrideIdentityManager: function() { 197 | var signInMethod = idManager.signIn, 198 | helper = this; 199 | 200 | idManager.signIn = function(resUrl, serverInfo, options) { 201 | 202 | return (serverInfo.server.indexOf(".arcgis.com") !== -1) ? 203 | // OAuth flow 204 | helper.signIn() : 205 | // generateToken flow 206 | signInMethod.apply(this, arguments); 207 | }; 208 | } 209 | }; 210 | 211 | window.oAuthHelper = oAuthHelper; 212 | 213 | return oAuthHelper; 214 | }); 215 | -------------------------------------------------------------------------------- /js/oauth/oauth-callback.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | OAuth Popup Callback 6 | 7 | 17 | 18 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /js/terraformer-arcgis-parser/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformer-arcgis-parser", 3 | "version": "1.0.4", 4 | "main": "terraformer-arcgis-parser.min.js", 5 | "ignore": [ 6 | "versions", 7 | "benchmarks" 8 | ], 9 | "dependencies": { 10 | "terraformer": "~1.0.3" 11 | }, 12 | "homepage": "https://github.com/Esri/terraformer-arcgis-parser", 13 | "_release": "1.0.4", 14 | "_resolution": { 15 | "type": "version", 16 | "tag": "v1.0.4", 17 | "commit": "fb13001a49136be04885ba4805a13fb9afd9629a" 18 | }, 19 | "_source": "git://github.com/Esri/terraformer-arcgis-parser.git", 20 | "_target": "~1.0.4", 21 | "_originalSource": "terraformer-arcgis-parser", 22 | "_direct": true 23 | } -------------------------------------------------------------------------------- /js/terraformer-arcgis-parser/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore complexity output 2 | complexity.xml 3 | 4 | # Ignore Coverage output 5 | coverage 6 | 7 | # Ignore Grunt temp files 8 | .grunt 9 | 10 | # Mac 11 | .DS_Store 12 | Icon 13 | ._* 14 | .Spotlight-V100 15 | # SublimeText 16 | /*.sublime-project 17 | *.sublime-workspace 18 | 19 | #Node 20 | node_modules 21 | npm-debug.log -------------------------------------------------------------------------------- /js/terraformer-arcgis-parser/.npmingnore: -------------------------------------------------------------------------------- 1 | versions -------------------------------------------------------------------------------- /js/terraformer-arcgis-parser/Gruntfile.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | 3 | module.exports = function (grunt) { 4 | grunt.initConfig({ 5 | pkg: grunt.file.readJSON('package.json'), 6 | 7 | meta: { 8 | banner: '/*! Terraformer ArcGIS Parser - <%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' + 9 | '* https://github.com/esri/terraformer-arcgis-parser\n' + 10 | '* Copyright (c) <%= grunt.template.today("yyyy") %> Esri, Inc.\n' + 11 | '* Licensed MIT */' 12 | }, 13 | 14 | uglify: { 15 | options: { 16 | report: 'gzip', 17 | banner: '<%= meta.banner %>' 18 | }, 19 | arcgis: { 20 | src: ["terraformer-arcgis-parser.js"], 21 | dest: 'terraformer-arcgis-parser.min.js' 22 | }, 23 | versioned: { 24 | src: ["terraformer-arcgis-parser.js"], 25 | dest: 'versions/terraformer-arcgis-parser-<%= pkg.version %>.min.js' 26 | } 27 | }, 28 | 29 | jasmine: { 30 | coverage: { 31 | src: [ 32 | "terraformer-arcgis-parser.js" 33 | ], 34 | options: { 35 | specs: 'spec/*Spec.js', 36 | helpers:[ 37 | "node_modules/terraformer/terraformer.js" 38 | ], 39 | //keepRunner: true, 40 | outfile: 'SpecRunner.html', 41 | template: require('grunt-template-jasmine-istanbul'), 42 | templateOptions: { 43 | coverage: './coverage/coverage.json', 44 | report: './coverage', 45 | thresholds: { 46 | lines: 80, 47 | statements: 80, 48 | branches: 75, 49 | functions: 80 50 | } 51 | } 52 | } 53 | } 54 | }, 55 | 56 | jasmine_node: { 57 | options: { 58 | forceExit: true, 59 | match: '.', 60 | matchall: false, 61 | extensions: 'js', 62 | specNameMatcher: 'Spec', 63 | helperNameMatcher: 'Helpers' 64 | }, 65 | all: ['spec/'] 66 | }, 67 | 68 | complexity: { 69 | generic: { 70 | src: [ 'terraformer-arcgis-parser.js' ], 71 | options: { 72 | jsLintXML: 'complexity.xml', // create XML JSLint-like report 73 | errorsOnly: false, // show only maintainability errors 74 | cyclomatic: 6, 75 | halstead: 15, 76 | maintainability: 65 77 | } 78 | } 79 | }, 80 | 81 | s3: { 82 | options: { 83 | key: '<%= aws.key %>', 84 | secret: '<%= aws.secret %>', 85 | bucket: '<%= aws.bucket %>', 86 | access: 'public-read', 87 | headers: { 88 | // 1 Year cache policy (1000 * 60 * 60 * 24 * 365) 89 | "Cache-Control": "max-age=630720000, public", 90 | "Expires": new Date(Date.now() + 63072000000).toUTCString() 91 | } 92 | }, 93 | dev: { 94 | upload: [ 95 | { 96 | src: 'versions/terraformer-arcgis-parser-<%= pkg.version %>.min.js', 97 | dest: 'terraformer-arcgis-parser/<%= pkg.version %>/terraformer-arcgis-parser.min.js' 98 | } 99 | ] 100 | }, 101 | } 102 | }); 103 | 104 | var awsExists = fs.existsSync(process.env.HOME + '/terraformer-s3.json'); 105 | 106 | if (awsExists) { 107 | grunt.config.set('aws', grunt.file.readJSON(process.env.HOME + '/terraformer-s3.json')); 108 | } 109 | 110 | grunt.loadNpmTasks('grunt-contrib-uglify'); 111 | grunt.loadNpmTasks('grunt-contrib-jasmine'); 112 | grunt.loadNpmTasks('grunt-jasmine-node'); 113 | grunt.loadNpmTasks('grunt-complexity'); 114 | grunt.loadNpmTasks('grunt-s3'); 115 | 116 | grunt.registerTask('test', ['jasmine_node', 'jasmine']); 117 | grunt.registerTask('version', ['test', 'uglify', 's3']); 118 | grunt.registerTask('default', ['test']); 119 | }; -------------------------------------------------------------------------------- /js/terraformer-arcgis-parser/README.md: -------------------------------------------------------------------------------- 1 | # Terraformer ArcGIS JSON Parser 2 | 3 | This plugin handles 2 way conversion between [GeoJSON](http://geojson.org/geojson-spec.html) and the [ArcGIS Geometry](http://help.arcgis.com/en/arcgisserver/10.0/apis/rest/geometry.html) format used by Esri. 4 | 5 | This package is part of the [Terraformer](http://terraformer.io) project. 6 | 7 | ## Installing 8 | 9 | ### Node.js 10 | 11 | $ npm install terraformer-arcgis-parser 12 | 13 | ### Browser 14 | 15 | In the browser, [Terraformer](http://github.com/esri/terraformer) is required. 16 | 17 | You can use [Bower](http://bower.io/) to install the components if you like or download them and host them yourself. 18 | 19 | ``` 20 | $ bower install terraformer-arcgis-parser 21 | ``` 22 | 23 | ## Documentation 24 | 25 | For full documentation check out the [offical website](http://terraformer.io/arcgis-parser/). 26 | 27 | ```js 28 | var ArcGIS = require('terraformer-arcgis-parser'); 29 | 30 | // parse ArcGIS JSON, convert it to a Terraformer.Primitive (GeoJSON) 31 | var primitive = ArcGIS.parse({ 32 | x:"-122.6764", 33 | y:"45.5165", 34 | spatialReference: { 35 | wkid: 4326 36 | } 37 | }); 38 | 39 | // take a Terraformer.Primitive or GeoJSON and convert it back to ArcGIS JSON 40 | var point = ArcGIS.convert({ 41 | "type": "Point", 42 | "coordinates": [45.5165, -122.6764] 43 | }); 44 | ``` 45 | 46 | ```html 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 69 | ``` 70 | 71 | ## Resources 72 | 73 | * [Terraformer Website](http://terraformer.io) 74 | * [twitter@EsriPDX](http://twitter.com/esripdx) 75 | 76 | ## Issues 77 | 78 | Find a bug or want to request a new feature? Please let us know by submitting an issue. 79 | 80 | ## Contributing 81 | 82 | Esri welcomes contributions from anyone and everyone. Please see our [guidelines for contributing](https://github.com/esri/contributing). 83 | 84 | [](Esri Tags: Terraformer GeoJSON ArcGIS) 85 | [](Esri Language: JavaScript) 86 | -------------------------------------------------------------------------------- /js/terraformer-arcgis-parser/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformer-arcgis-parser", 3 | "version": "1.0.3", 4 | "main": "terraformer-arcgis-parser.min.js", 5 | "ignore" : ["versions", "benchmarks"], 6 | "dependencies": { 7 | "terraformer": "~1.0.3" 8 | } 9 | } -------------------------------------------------------------------------------- /js/terraformer-arcgis-parser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformer-arcgis-parser", 3 | "version": "1.0.4", 4 | "description": "ArcGIS JSON format parser and converter", 5 | "main": "terraformer-arcgis-parser.js", 6 | "directories": { 7 | "test": "test" 8 | }, 9 | "scripts": { 10 | "test": "grunt test" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git@github.com:Esri/terraformer-arcgis-parser.git" 15 | }, 16 | "keywords": [ 17 | "ArcGIS", 18 | "Esri", 19 | "GIS", 20 | "Geography" 21 | ], 22 | "author": "Patrick Arlt (http://patrickarlt.com)", 23 | "license": "MIT", 24 | "dependencies": { 25 | "terraformer": "~1.0.4" 26 | }, 27 | "devDependencies": { 28 | "grunt": "0.4.x", 29 | "grunt-complexity": "~0.1.3", 30 | "grunt-contrib-uglify": "~0.2.2", 31 | "grunt-contrib-jasmine": "~0.4.2", 32 | "grunt-jasmine-node": "https://github.com/magicmoose/grunt-jasmine-node/tarball/master", 33 | "grunt-template-jasmine-istanbul": "~0.2.4", 34 | "benchmark": "~1.0.0", 35 | "grunt-s3": "~0.2.0-alpha.3" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /js/terraformer-arcgis-parser/terraformer-arcgis-parser.min.js: -------------------------------------------------------------------------------- 1 | /*! Terraformer ArcGIS Parser - 1.0.4 - 2014-06-17 2 | * https://github.com/esri/terraformer-arcgis-parser 3 | * Copyright (c) 2014 Esri, Inc. 4 | * Licensed MIT */!function(a,b){if("object"==typeof module&&"object"==typeof module.exports&&(exports=module.exports=b(require("terraformer"))),"object"==typeof a.navigator){if(!a.Terraformer)throw new Error("Terraformer.ArcGIS requires the core Terraformer library. https://github.com/esri/Terraformer");a.Terraformer.ArcGIS=b(a.Terraformer)}}(this,function(a){function b(a){var b,c,d,e,f=0,g=0,h=[];d=a.match(/((\+|\-)[^\+\-]+)/g),e=parseInt(d[0],32);for(var i=1;id;d++)b=a[d+1],c+=(b[0]-f[0])*(b[1]+f[1]),f=b;return c>=0}function g(a){var b=[],d=a.slice(0),e=c(d.shift().slice(0));if(e.length>=4){f(e)||e.reverse(),b.push(e);for(var g=0;g=4&&(f(h)&&h.reverse(),b.push(h))}}return b}function h(a){for(var b=[],c=0;c=0;e--){var f=d[e].slice(0);b.push(f)}return b}function i(b,c){var d=a.Tools.arraysIntersectArrays(b,c),e=a.Tools.coordinatesContainPoint(b,c[0]);return!d&&e?!0:!1}function j(a){for(var b=[],d=[],e=0;e=0;l--){var m=b[l][0];if(i(m,j)){b[l].push(j),k=!0;break}}k||b.push([j.reverse()])}return 1===b.length?{type:"Polygon",coordinates:b[0]}:{type:"MultiPolygon",coordinates:b}}function k(c,d){var f={};d=d||{},d.idAttribute=d.idAttribute||void 0,"number"==typeof c.x&&"number"==typeof c.y&&(f.type="Point",f.coordinates=[c.x,c.y],(c.z||c.m)&&f.coordinates.push(c.z),c.m&&f.coordinates.push(c.m)),c.points&&(f.type="MultiPoint",f.coordinates=c.points.slice(0)),c.paths&&(1===c.paths.length?(f.type="LineString",f.coordinates=c.paths[0].slice(0)):(f.type="MultiLineString",f.coordinates=c.paths.slice(0))),c.rings&&(f=j(c.rings.slice(0))),(c.compressedGeometry||c.geometry||c.attributes)&&(f.type="Feature",c.compressedGeometry&&(c.geometry={paths:[b(c.compressedGeometry)]}),f.geometry=c.geometry?k(c.geometry):null,f.properties=c.attributes?e(c.attributes):null,c.attributes&&(f.id=c.attributes[d.idAttribute]||c.attributes.OBJECTID||c.attributes.FID));var g=c.geometry?c.geometry.spatialReference:c.spatialReference;return g&&102100===g.wkid&&(f=a.toGeographic(f)),new a.Primitive(f)}function l(b,c){var d;c=c||{};var f=c.idAttribute||"OBJECTID";d=c.sr?{wkid:c.sr}:b&&b.crs===a.MercatorCRS?{wkid:102100}:{wkid:4326};var i,j={};switch(b.type){case"Point":j.x=b.coordinates[0],j.y=b.coordinates[1],b.coordinates[2]&&(j.z=b.coordinates[2]),b.coordinates[3]&&(j.m=b.coordinates[3]),j.spatialReference=d;break;case"MultiPoint":j.points=b.coordinates.slice(0),j.spatialReference=d;break;case"LineString":j.paths=[b.coordinates.slice(0)],j.spatialReference=d;break;case"MultiLineString":j.paths=b.coordinates.slice(0),j.spatialReference=d;break;case"Polygon":j.rings=g(b.coordinates.slice(0)),j.spatialReference=d;break;case"MultiPolygon":j.rings=h(b.coordinates.slice(0)),j.spatialReference=d;break;case"Feature":b.geometry&&(j.geometry=l(b.geometry,c)),j.attributes=b.properties?e(b.properties):{},j.attributes[f]=b.id;break;case"FeatureCollection":for(j=[],i=0;i - <%= grunt.template.today("yyyy-mm-dd") %>\n' + 19 | '* https://github.com/esri/Terraformer\n' + 20 | '* Copyright (c) <%= grunt.template.today("yyyy") %> Environmental Systems Research Institute, Inc.\n' + 21 | '* Licensed MIT */' 22 | }, 23 | terraformer: { 24 | src: ['terraformer.js'], 25 | dest: 'terraformer.min.js' 26 | }, 27 | versioned: { 28 | src: ['terraformer.js'], 29 | dest: 'versions/terraformer-<%= pkg.version %>.min.js' 30 | } 31 | }, 32 | 33 | jasmine: { 34 | coverage: { 35 | src: [ 36 | "terraformer.js" 37 | ], 38 | options: { 39 | specs: 'spec/*Spec.js', 40 | helpers: 'spec/*Helpers.js', 41 | //keepRunner: true, 42 | outfile: 'SpecRunner.html', 43 | template: require('grunt-template-jasmine-istanbul'), 44 | templateOptions: { 45 | coverage: './.coverage/coverage.json', 46 | report: './.coverage', 47 | thresholds: { 48 | lines: 90, 49 | statements: 90, 50 | branches: 90, 51 | functions: 90 52 | } 53 | } 54 | } 55 | } 56 | }, 57 | 58 | jasmine_node: { 59 | options: { 60 | forceExit: true, 61 | match: '.', 62 | matchall: false, 63 | extensions: 'js', 64 | specNameMatcher: 'Spec', 65 | helperNameMatcher: 'Helpers' 66 | }, 67 | all: ['spec/'] 68 | }, 69 | 70 | complexity: { 71 | generic: { 72 | src: [ 'terraformer.js' ], 73 | options: { 74 | jsLintXML: 'complexity.xml', // create XML JSLint-like report 75 | errorsOnly: false, // show only maintainability errors 76 | cyclomatic: 6, 77 | halstead: 15, 78 | maintainability: 65 79 | } 80 | } 81 | }, 82 | 83 | s3: { 84 | options: { 85 | key: '<%= aws.key %>', 86 | secret: '<%= aws.secret %>', 87 | bucket: '<%= aws.bucket %>', 88 | access: 'public-read', 89 | headers: { 90 | // 1 Year cache policy (1000 * 60 * 60 * 24 * 365) 91 | "Cache-Control": "max-age=630720000, public", 92 | "Expires": new Date(Date.now() + 63072000000).toUTCString() 93 | } 94 | }, 95 | dev: { 96 | upload: [ 97 | { 98 | src: 'versions/terraformer-<%= pkg.version %>.min.js', 99 | dest: 'terraformer/<%= pkg.version %>/terraformer.min.js' 100 | } 101 | ] 102 | }, 103 | }, 104 | 105 | 'gh-pages': { 106 | options: { 107 | base: 'docs-build', 108 | repo: 'git@github.com:Esri/Terraformer.git', 109 | branch: 'gh-pages' 110 | }, 111 | src: ['**'] 112 | }, 113 | 114 | 115 | middleman: { 116 | server: { 117 | options: { 118 | useBundle: true 119 | } 120 | }, 121 | build: { 122 | options: { 123 | useBundle: true, 124 | server: false, 125 | command: "build" 126 | } 127 | } 128 | } 129 | 130 | }); 131 | 132 | var awsExists = fs.existsSync(process.env.HOME + '/terraformer-s3.json'); 133 | 134 | if (awsExists) { 135 | grunt.config.set('aws', grunt.file.readJSON(process.env.HOME + '/terraformer-s3.json')); 136 | } 137 | 138 | grunt.loadNpmTasks('grunt-contrib-jshint'); 139 | grunt.loadNpmTasks('grunt-contrib-uglify'); 140 | grunt.loadNpmTasks('grunt-complexity'); 141 | grunt.loadNpmTasks('grunt-contrib-jasmine'); 142 | grunt.loadNpmTasks('grunt-jasmine-node'); 143 | grunt.loadNpmTasks('grunt-s3'); 144 | grunt.loadNpmTasks('grunt-gh-pages'); 145 | grunt.loadNpmTasks('grunt-middleman'); 146 | 147 | grunt.registerTask('test', ['jshint', 'jasmine_node', 'jasmine']); 148 | grunt.registerTask('version', ['test', 'uglify', 's3']); 149 | grunt.registerTask('default', ['test']); 150 | grunt.registerTask('deploy-docs', ['middleman:build', 'gh-pages']); 151 | }; 152 | -------------------------------------------------------------------------------- /js/terraformer/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformer", 3 | "version": "1.0.3", 4 | "description": "A Geo-toolkit built in Javascript.", 5 | "main": "terraformer.js", 6 | "devDependencies": { 7 | "grunt": "0.4.x", 8 | "grunt-contrib-jshint": "0.6.x", 9 | "grunt-contrib-uglify": "~0.2.2", 10 | "grunt-complexity": "~0.1.3", 11 | "grunt-contrib-jasmine": "~0.4.2", 12 | "grunt-jasmine-node": "https://github.com/magicmoose/grunt-jasmine-node/tarball/master", 13 | "grunt-template-jasmine-istanbul": "~0.2.4", 14 | "grunt-s3": "~0.2.0-alpha.3", 15 | "grunt-gh-pages": "~0.8.1", 16 | "grunt-middleman": "~0.1.0" 17 | }, 18 | "scripts": { 19 | "test": "grunt test" 20 | }, 21 | "repository": { 22 | "type": "git", 23 | "url": "git://github.com/esri/terraformer.git" 24 | }, 25 | "author": "Patrick Arlt (http://patrickarlt.com)", 26 | "contributors": [ 27 | "Patrick Arlt (http://patrickarlt.com)", 28 | "Jerry Sievert (http://legitimatesounding.com)" 29 | ], 30 | "license": "MIT" 31 | } 32 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/license.txt -------------------------------------------------------------------------------- /quickstart-map-js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/quickstart-map-js/f00010acc975139bf17292495c719ca35f6572c1/quickstart-map-js.png --------------------------------------------------------------------------------