├── .DS_Store ├── README.md ├── config ├── commonConfig.js ├── defaults.js └── templateConfig.js ├── css ├── filters.svg └── main.css ├── fonts ├── helveticaneue.eot ├── helveticaneue.svg ├── helveticaneue.ttf ├── helveticaneue.woff ├── helveticaneueultralight.eot ├── helveticaneueultralight.svg ├── helveticaneueultralight.ttf ├── helveticaneueultralight.woff ├── steelfish-webfont.eot ├── steelfish-webfont.svg ├── steelfish-webfont.ttf └── steelfish-webfont.woff ├── images ├── ajax-loader-new.gif ├── ajax-loader.gif ├── arrow.png ├── car.png ├── close.png ├── demographics.png ├── directions.png ├── down.png ├── error.png ├── lifestyle.png ├── lifestyleb.png ├── loading.gif ├── logo.png ├── menu.png ├── more.png ├── pin.png ├── reverse.png ├── slider.png ├── sliderThumb.png ├── sliderThumbs.png ├── thumb.png ├── up.png ├── w │ ├── cloudy1.png │ ├── cloudy1_night.png │ ├── cloudy2.png │ ├── cloudy2_night.png │ ├── cloudy3.png │ ├── cloudy3_night.png │ ├── cloudy4.png │ ├── cloudy4_night.png │ ├── cloudy5.png │ ├── dunno.png │ ├── fog.png │ ├── fog_night.png │ ├── hail.png │ ├── light_rain.png │ ├── mist.png │ ├── mist_night.png │ ├── overcast.png │ ├── shower1.png │ ├── shower1_night.png │ ├── shower2.png │ ├── shower2_night.png │ ├── shower3.png │ ├── sleet.png │ ├── snow1.png │ ├── snow1_night.png │ ├── snow2.png │ ├── snow2_night.png │ ├── snow3.png │ ├── snow3_night.png │ ├── snow4.png │ ├── snow5.png │ ├── sunny.png │ ├── sunny_night.png │ ├── tstorm1.png │ ├── tstorm1_night.png │ ├── tstorm2.png │ ├── tstorm2_night.png │ └── tstorm3.png └── weather.png ├── index.html ├── js ├── DemographicsInfo.js ├── LifestyleInfo.js ├── OAuthHelper.js ├── ProximityInfo.js ├── SearchSources.js ├── WeatherInfo.js ├── main.js ├── nls │ ├── ar │ │ └── resources.js │ ├── bs │ │ └── resources.js │ ├── ca │ │ └── resources.js │ ├── cs │ │ └── resources.js │ ├── da │ │ └── resources.js │ ├── de │ │ └── resources.js │ ├── el │ │ └── resources.js │ ├── es │ │ └── resources.js │ ├── et │ │ └── resources.js │ ├── fi │ │ └── resources.js │ ├── fr │ │ └── resources.js │ ├── he │ │ └── resources.js │ ├── hr │ │ └── resources.js │ ├── hu │ │ └── resources.js │ ├── id │ │ └── resources.js │ ├── it │ │ └── resources.js │ ├── ja │ │ └── resources.js │ ├── ko │ │ └── resources.js │ ├── lt │ │ └── resources.js │ ├── lv │ │ └── resources.js │ ├── nb │ │ └── resources.js │ ├── nl │ │ └── resources.js │ ├── pl │ │ └── resources.js │ ├── pt-br │ │ └── resources.js │ ├── pt-pt │ │ └── resources.js │ ├── resources.js │ ├── ro │ │ └── resources.js │ ├── ru │ │ └── resources.js │ ├── sl │ │ └── resources.js │ ├── sr │ │ └── resources.js │ ├── sv │ │ └── resources.js │ ├── th │ │ └── resources.js │ ├── tr │ │ └── resources.js │ ├── uk │ │ └── resources.js │ ├── vi │ │ └── resources.js │ ├── zh-cn │ │ └── resources.js │ ├── zh-hk │ │ └── resources.js │ └── zh-tw │ │ └── resources.js ├── template.js └── ui.js ├── oauth-callback.html ├── proxy.php └── resources ├── configurationPanel.js └── doc ├── addpremiumservice.html └── images ├── additem.png ├── additem_dialog.png ├── bullet.png ├── config.png ├── rate_info.png ├── secure_url.png └── share_dialog.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | local-perspective 2 | ======================= 3 | 4 | Local Perspective is a configurable template for highlighting features from a web map based on a user selected location or address. In addition to your data, you can include demographics, lifestyle, live weather information and enable driving directions. 5 | 6 | ![Screen Shot](http://coolmaps.esri.com/templates/LocalPerspective/images/thumb.png) 7 | 8 | [View it live] (http://coolmaps.esri.com/templates/LocalPerspective/?cycleColors=1) 9 | 10 | #Features 11 | 12 | The template can be configured using the following options: 13 | 14 | Map: Choose the web map used in your application. 15 | 16 | Text Title: The application name displayed in the application header. 17 | 18 | Logo URL: The URL location for the application icon (logo). 19 | 20 | Color: Choose either a single color scheme for the application or cycle through a unique color scheme for each layer. 21 | 22 | Show Demographics: Choose this option to include demographic information about the selected location. 23 | 24 | Show Lifestyle: Choose this option to include lifestyle information about the selected location based on Esri's tapestry segmentation neighborhood profile data. 25 | 26 | Show Weather: Choose this option to include weather conditions for the selected location. 27 | 28 | Enable Routing Directions: Choose this option to allow users to generate turn by turn directions. * 29 | 30 | Route Utility Item: URL to route utility item (with stored credentials). * 31 | *requires organization account. 32 | 33 | Distance Units: Choose this distance units (miles, kilometers or meters). 34 | 35 | Maximum Distance: Specify a maximum search distance. 36 | 37 | Default Distance: Specify a default search distance. 38 | 39 | 40 | #Instructions 41 | 42 | 1. Download and unzip the .zip file or clone the repo. 43 | 2. Web-enable the directory 44 | 3. Access the .html page 45 | 4. See the readme page for more details. 46 | 47 | 48 | #Deploying 49 | 50 | 1. To deploy this application, download the template from Portal/ArcGIS Online and unzip it. 51 | 2. Copy the unzipped folder containing the web app template files, such as index.html, to your web server. You can rename the folder to change the URL through which users will access the application. By default the URL to the app will be `http:////index.html` 52 | 3. Change the sharing host, found in defaults.js inside the config folder for the application, to the sharing URL for ArcGIS Online or Portal. For ArcGIS Online users, keep the default value of www.arcgis.com or specify the name of your organization. 53 | - ArcGIS Online Example: `"sharinghost": location.protocol + "//" + “.maps.arcgis.com` 54 | - Portal Example where `arcgis` is the name of the Web Adaptor: `"sharinghost": location.protocol + "//" + "webadaptor.domain.com/arcgis"` 55 | 4. If you are using Portal or a local install of the ArcGIS API for JavaScript, change all references to the ArcGIS API for JavaScript in index.html to refer to your local copy of the API. Search for the references containing `"//js.arcgis.com/"` and replace this portion of the reference with the url to your local install. 56 | - For example: `"//webadaptor.domain.com/arcgis/jsapi/jsapi"` where `arcgis` is the name of your Web Adaptor. 57 | 5. Copy a map or group ID from Portal/ArcGIS Online and replace the default web map ID in the application’s index.html page. You can now run the application on your web server or customize the application further. 58 | 59 | > **Note:** If your application edits features in a feature service, contains secure services or web maps that aren't shared publicly, or generate requests that exceed 200 characters, you may need to set up and use a proxy page. Common situations where you may exceed the URL length are using complex polygons as input to a task or specifying a spatial reference using well-known text (WKT). For details on installing and configuring a proxy page see [Using the proxy](https://developers.arcgis.com/javascript/jshelp/ags_proxy.html). If you do not have an Internet connection, you will need to access and deploy the ArcGIS API for JavaScript documentation from [developers.arcgis.com](https://developers.arcgis.com/). 60 | 61 | 62 | #Requirements 63 | 64 | - Notepad or HTML editor 65 | - Some background with HTML, CSS and JavaScript 66 | - Experience with the ArcGIS API for JavaScript is helpful. 67 | 68 | #Resources 69 | 70 | - [ArcGIS API for JavaScript Resource Center](http://help.arcgis.com/en/webapi/javascript/arcgis/index.html) 71 | 72 | #Issues 73 | Found a bug or want to request a new feature? Please let us know by submitting an issue. 74 | 75 | #Contributing 76 | Anyone and everyone is welcome to contribute. 77 | 78 | #Licensing 79 | 80 | Copyright 2014 Esri 81 | 82 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at 83 | 84 | http://www.apache.org/licenses/LICENSE-2.0 85 | 86 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 87 | 88 | A copy of the license is available in the repository's license.txt file. 89 | [](Esri Tags: ArcGIS Online Web Application Templates) 90 | [](Esri Language: JavaScript) 91 | -------------------------------------------------------------------------------- /config/commonConfig.js: -------------------------------------------------------------------------------- 1 | define( 2 | [], 3 | function() { 4 | var config = { 5 | bingMapsKey:"", 6 | units: "dual", 7 | helperServices: { 8 | geometry:{ 9 | url: location.protocol + "//utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer" 10 | }, 11 | printTask: { 12 | url: location.protocol + "//utility.arcgisonline.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task" 13 | }, 14 | elevationSync:{ 15 | url: location.protocol + "//elevation.arcgis.com/arcgis/rest/services/Tools/ElevationSync/GPServer" 16 | }, 17 | geocode: [{ 18 | url: location.protocol + "//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer" 19 | }] 20 | } 21 | }; 22 | 23 | // could use a has() test to optionally populate some global 24 | // property so that the stuff defined is in some global identifier 25 | // 26 | // instead, just populate a global, will need to remove the next line when 27 | // when we remove support for loading modules with dojo.require 28 | // which will be when we move to Dojo 2.0 29 | commonConfig = config; 30 | // instead of using a global, this should probably be added to some namespace... 31 | // do the templates have a common namespace that they use? 32 | 33 | return config; 34 | }); 35 | -------------------------------------------------------------------------------- /config/defaults.js: -------------------------------------------------------------------------------- 1 | /*global define,location */ 2 | /*jslint sloppy:true */ 3 | /* 4 | | Copyright 2014 Esri 5 | | 6 | | Licensed under the Apache License, Version 2.0 (the "License"); 7 | | you may not use this file except in compliance with the License. 8 | | You may obtain a copy of the License at 9 | | 10 | | http://www.apache.org/licenses/LICENSE-2.0 11 | | 12 | | Unless required by applicable law or agreed to in writing, software 13 | | distributed under the License is distributed on an "AS IS" BASIS, 14 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | | See the License for the specific language governing permissions and 16 | | limitations under the License. 17 | */ 18 | define({ 19 | //Default configuration settings for the application. This is where you'll define things like a bing maps key, 20 | //default web map, default app color theme and more. These values can be overwritten by template configuration settings and url parameters. 21 | "appid": "", 22 | "webmap": "9569a8b938c746359c1b4aa490476506", //"4ab11e3ebab04de6b04c42bbc102d3c0", 23 | "oauthappid": "arcgisWebApps", //"AFTKRmv16wj14N3z", 24 | //Group templates must support a group url parameter. This will contain the id of the group. 25 | //group: "", 26 | //Enter the url to the proxy if needed by the application. See the 'Using the proxy page' help topic for details 27 | //http://developers.arcgis.com/en/javascript/jshelp/ags_proxy.html 28 | "proxyurl": "proxy.php", 29 | "bingKey": "", //Enter the url to your organizations bing maps key if you want to use bing basemaps 30 | //Defaults to arcgis.com. Set this value to your portal or organization host name. 31 | "sharinghost": location.protocol + "//" + "www.arcgis.com", 32 | //When true the template will query arcgis.com for default settings for helper services, units etc. If you 33 | //want to use custom settings for units or any of the helper services set queryForOrg to false then enter 34 | //default values for any items you need using the helper services and units properties. 35 | "queryForOrg": true, 36 | //If you need localization set the localize value to true to get the localized strings 37 | //from the javascript/nls/resource files. 38 | //Note that we've included a placeholder nls folder and a resource file with one error string 39 | //to show how to setup the strings file. 40 | "localize": true, 41 | "units": null, 42 | 43 | // **************************** // 44 | // ** UI SPECIFIC PARAMETERS ** // 45 | "cycleColors": true, 46 | "color": "#80ab00", 47 | "colors": ["#0071ab", "#27a4d2", "#886197", "#8a2581", "#fc0055", "#c50143", "#db0111", "#ec5b02", "#efa602", "#dab900", "#80ab00", "#548901", "#049686", "#097096"], 48 | "logo" : "images/logo.png", 49 | "title": "Local Perspective", 50 | // **************************** // 51 | 52 | // **************************** // 53 | // ** LOCAL PERSPECTIVE PARAMETERS **// 54 | "showDemographics": true, 55 | "demographicsLabel": "Demographics", 56 | //"demographicsURL": "http://services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Percent_Under_18/MapServer/1", 57 | //"demographicsFields": "TOTPOP_CY,POPL18_CY,POP65U_CY", 58 | //"demographicsAliases": "2012 Total Population,2012 Population Under 18 Years,2012 Population Over 65 Years", 59 | "demographicsURL": location.protocol + "//services.arcgis.com/80hk79qB8z45zcHi/ArcGIS/rest/services/US_Block_Group_Points/FeatureServer/0", 60 | "demographicsFields": "POP2010,MALES,FEMALES,HSE_UNITS", 61 | "demographicsAliases": "2010 Total Population,Male Population,Female Population,Housing Units", 62 | "showLifestyle": true, 63 | "lifestyleLabel": "Lifestyle", 64 | "lifestyleURL": location.protocol + "//services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Tapestry/MapServer/1", 65 | "showWeather": true, 66 | "weatherLabel": "Weather", 67 | "weatherURL": location.protocol + "//coolmaps.esri.com/Weather/info.php?v=1&callbackNode=LocalPerspective", 68 | "weatherLayerURL_Tiled" : "https://gisserver.accuweather.com/ESRITileServices2/tileRequest/AccuTileServices/LatestUSHiResRadar/N1dvRW9KUjNNK2tYWFp4Y1h6M2lCa2ZTRW5wMWJzeXdaamxIY3ZkRmcxVCs1YXdPaE1MckpBPT0=/MapServer/tile/{level}/{row}/{col}", 69 | "weatherLayerURL_WMS" : location.protocol + "//mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi?SERVICE=WMS", // URL for WMS weather layer. 70 | "weatherUnits": "F", // options: F or C 71 | "showDirections": false, 72 | "directionsLabel": "Directions", 73 | "directionsURL": null, 74 | "distanceUnits": "miles", // options: miles or kilometers 75 | "maxDistance": 10, 76 | "defaultDistance": 3, 77 | "defaultZoomLevel": 14, 78 | "defaultToCenter": true, 79 | // **************************** // 80 | 81 | // **************************** // 82 | // ** UTILITY PARAMETERS ** // 83 | "routeUtility" : "", 84 | // **************************** // 85 | 86 | //This option demonstrates how to handle additional custom url parameters. For example 87 | //if you want users to be able to specify lat/lon coordinates that define the map's center or 88 | //specify an alternate basemap via a url parameter. 89 | "urlItems": [ 90 | "extent", 91 | "color", 92 | "cycleColors", 93 | "showDirections", 94 | "defaultDistance" 95 | ], 96 | "helperServices": { 97 | "geometry": { 98 | "url": null 99 | }, 100 | "printTask": { 101 | "url": null 102 | }, 103 | "routeTask": { 104 | "url": null 105 | }, 106 | "elevationSync": { 107 | "url": null 108 | }, 109 | "geocode": [{ 110 | "url": null 111 | }] 112 | } 113 | }); 114 | -------------------------------------------------------------------------------- /config/templateConfig.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /*jslint sloppy:true */ 3 | /* 4 | | Copyright 2014 Esri 5 | | 6 | | Licensed under the Apache License, Version 2.0 (the "License"); 7 | | you may not use this file except in compliance with the License. 8 | | You may obtain a copy of the License at 9 | | 10 | | http://www.apache.org/licenses/LICENSE-2.0 11 | | 12 | | Unless required by applicable law or agreed to in writing, software 13 | | distributed under the License is distributed on an "AS IS" BASIS, 14 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | | See the License for the specific language governing permissions and 16 | | limitations under the License. 17 | */ 18 | define({ 19 | // When true, the template will query arcgis.com for the webmap item. 20 | "queryForWebmap": true, 21 | // When true, the template will query arcgis.com for the group's information. 22 | "queryForGroupInfo": false, 23 | // When true, the template will query arcgis.com for the items contained within the group 24 | "queryForGroupItems": false, 25 | // Use a local hosted webmap instead of a webmap on ArcGIS or portal. 26 | "useLocalWebmap": false, 27 | // Webmap file to use for the local webmap 28 | "localWebmapFile": "config/demoMap", 29 | //When true the template will query arcgis.com for default settings for helper services, units etc. If you 30 | //want to use custom settings for units or any of the helper services set queryForOrg to false then enter 31 | //default values for any items you need using the helper services and units properties. 32 | "queryForOrg": true, 33 | //If you need localization set the localize value to true to get the localized strings 34 | //from the javascript/nls/resource files. 35 | //Note that we've included a placeholder nls folder and a resource file with one error string 36 | //to show how to setup the strings file. 37 | "queryForLocale": true, 38 | // These are the options specified for querying items within the group. Modify these to get more items. You can also call the public template.queryGroupItems() method with these options as a parameter. 39 | "groupParams": { 40 | q: "group:\"${groupid}\" AND -type:\"Code Attachment\"", 41 | "sortField": "modified", 42 | "sortOrder": "desc", 43 | "num": 9, 44 | "start": 0 45 | }, 46 | //This option demonstrates how to handle additional custom url parameters. For example 47 | //if you want users to be able to specify lat/lon coordinates that define the map's center or 48 | //specify an alternate basemap via a url parameter. 49 | "urlItems": [ 50 | "color", 51 | "center", 52 | "extent", 53 | "level", 54 | "theme", // example param. ?theme= 55 | "sharinghost" 56 | ], 57 | // Most users will not need to modify this value. For esri hosting environments only. Will automatically create a "sharinghost" and "proxyurl" for the application. Only set this is to true if the app is going to be stored on Esri's hosting servers. If you are using your own custom hosted portal, set the "sharinghost" in defaults.js instead of setting this to true. 58 | esriEnvironment: true 59 | }); -------------------------------------------------------------------------------- /css/filters.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | padding: 0; 3 | margin: 0; 4 | height: 100%; 5 | width: 100%; 6 | font-family: Arial, Helvetica, sans-serif; 7 | } 8 | 9 | a, a:hover, a:visited{ 10 | color: #bbbbbb; 11 | text-decoration: none; 12 | } 13 | 14 | 15 | /* Fonts */ 16 | 17 | @font-face { 18 | font-family: 'HelveticaNeue'; 19 | src: url('../fonts/helveticaneue.eot'); 20 | src: url('../fonts/helveticaneue.eot?#iefix') format('embedded-opentype'), url('../fonts/helveticaneue.woff') format('woff'), url('../fonts/helveticaneue.ttf') format('truetype'), url('../fonts/helveticaneue.svg#HelveticaNeue') format('svg'); 21 | font-weight: normal; 22 | font-style: normal; 23 | } 24 | 25 | @font-face { 26 | font-family: 'HelveticaNeueUltraLight'; 27 | src: url('../fonts/helveticaneueultralight.eot'); 28 | src: url('../fonts/helveticaneueultralight.eot?#iefix') format('embedded-opentype'), url('../fonts/helveticaneueultralight.woff') format('woff'), url('../fonts/helveticaneueultralight.ttf') format('truetype'), url('../fonts/helveticaneueultralight.svg#HelveticaNeueUltraLight') format('svg'); 29 | font-weight: normal; 30 | font-style: normal; 31 | } 32 | 33 | @font-face { 34 | font-family: 'Steelfish'; 35 | src: url('../fonts/steelfish-webfont.eot'); 36 | src: url('../fonts/steelfish-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/steelfish-webfont.woff') format('woff'), url('../fonts/steelfish-webfont.ttf') format('truetype'), url('../fonts/steelfish-webfont.svg#steelfish_rgregular') format('svg'); 37 | font-weight: normal; 38 | font-style: normal; 39 | } 40 | 41 | #mapDiv { 42 | position: fixed; 43 | padding: 0; 44 | margin: 0; 45 | width: 100%; 46 | height: 100%; 47 | } 48 | 49 | .esriRTL label { 50 | /*Example of a rule that will be applied if the app is viewed in a browser with a RTL locale like Hebrew or Arabic.*/ 51 | } 52 | 53 | .loading-indicator { 54 | /* Loading status */ 55 | display: none; 56 | height: 100%; 57 | width: 100%; 58 | z-index: 500; 59 | position: absolute; 60 | top: 0; 61 | left: 0; 62 | overflow: hidden; 63 | background: #fff; 64 | } 65 | 66 | .app-loading .loading-indicator, .app-error .loading-indicator { 67 | /* Show this class when loading or error */ 68 | display: block; 69 | } 70 | 71 | .app-loading .loading-indicator { 72 | /* Loading image */ 73 | background-position: center center; 74 | background-image: url('../images/ajax-loader-new.gif'); 75 | background-repeat: no-repeat; 76 | } 77 | 78 | .app-error .loading-message { 79 | /* Error status */ 80 | background-position: top center; 81 | background-image: url('../images/error.png'); 82 | background-repeat: no-repeat; 83 | padding-top: 60px; 84 | width: 100%; 85 | position: absolute; 86 | z-index: 2; 87 | top: 40%; 88 | left: 0; 89 | text-align: center; 90 | } 91 | 92 | /* Esri Jvascript API*/ 93 | 94 | .esriSimpleSlider { 95 | text-align: center; 96 | color: #ffffff; 97 | background-color: rgb(255,255,255); 98 | -moz-opacity: 0.9; 99 | -khtml-opacity: 0.9; 100 | opacity: 0.9; 101 | filter: alpha(opacity=90); 102 | cursor: pointer; 103 | -moz-box-shadow: 3px 3px 10px rgba(0,0,0,0.3); 104 | -webkit-box-shadow: 3px 3px 10px rgba(0,0,0,0.3); 105 | box-shadow: 3px 3px 10px rgba(0,0,0,0.3); 106 | -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=10, Direction=135, Color='#000000')"; 107 | } 108 | 109 | .esriSimpleSlider div { 110 | width: 19px; 111 | height: 19px; 112 | font-size: 16px; 113 | font-family: verdana, helvetica; 114 | font-weight: bold; 115 | line-height: 19px; 116 | -webkit-user-select: none; 117 | } 118 | 119 | .esriSimpleSliderTL { 120 | top: 5px; 121 | left: 5px; 122 | border: none; 123 | } 124 | 125 | .esriSimpleSliderDecrementButton:hover, .esriSimpleSliderIncrementButton:hover { 126 | background-color: rgba(0,0,0,0.3); 127 | } 128 | 129 | .esriSimpleSliderIncrementButton { 130 | border-bottom: solid 1px #ffffff !important; 131 | } 132 | 133 | .arcgisGeocoder .esriGeocoderLoading .esriGeocoderReset { 134 | background: url("../images/loading.gif") no-repeat scroll center center transparent; 135 | } 136 | 137 | .simpleGeocoder .esriGeocoderLoading .esriGeocoderReset { 138 | background: url("../images/loading.gif") no-repeat scroll center center transparent; 139 | } 140 | 141 | .simpleGeocoder .esriGeocoder { 142 | display: block; 143 | width: 100%; 144 | margin: 0; 145 | /*border: 1px solid #57585A;*/ 146 | border: transparent; 147 | background-color: rgba(0,0,0,0.3); 148 | -webkit-border-radius: 5px; 149 | border-radius: 5px; 150 | } 151 | 152 | .simpleGeocoder .esriGeocoder input { 153 | color: #bbbbbb; 154 | } 155 | 156 | .simpleGeocoder .esriGeocoder input:focus { 157 | color: #bbbbbb; 158 | } 159 | 160 | .esriGeocoderResults { 161 | color: #ffffff !important; 162 | font-weight: 300 !important; 163 | background-color: rgba(0,0,0,0.8) !important; 164 | } 165 | 166 | .esriGeocoderResult:hover { 167 | background-color: rgba(0,0,0,0.9) !important; 168 | } 169 | 170 | /* Search */ 171 | 172 | .arcgisSearch .searchGroup{ 173 | color: #ffffff; 174 | background-color: #000000; 175 | background-color: rgba(0,0,0,0.3); 176 | width: auto; 177 | height: 28px; 178 | line-height: 28px; 179 | border: 1px solid rgba(255,255,255, 0.5); 180 | border-radius: 4px; 181 | } 182 | 183 | .arcgisSearch .searchBtn{ 184 | color: #ffffff; 185 | background-color: transparent; 186 | border: none; 187 | outline: none; 188 | padding: 4px 6px; 189 | } 190 | 191 | .arcgisSearch .searchBtn:hover, .arcgisSearch .searchBtn:focus, .arcgisSearch .searchBtn:active { 192 | text-decoration: none; 193 | background-color: rgba(0,0,0,0.3); 194 | outline: none; 195 | } 196 | 197 | .arcgisSearch .searchGroup .searchInput { 198 | color: #ffffff; 199 | background-color: transparent; 200 | border: none; 201 | outline: none; 202 | width: 175px !important; 203 | padding: 4px 24px 4px 12px; 204 | } 205 | 206 | .arcgisSearch .searchClear { 207 | color: #ffffff; 208 | background-color: transparent; 209 | border: none; 210 | height: 24px; 211 | line-height: 24px; 212 | } 213 | 214 | .arcgisSearch .searchClose, .arcgisSearch .searchSpinner { 215 | font-size: 12px; 216 | line-height: 24px; 217 | width: 24px; 218 | height: 24px; 219 | } 220 | 221 | .show-all-results { 222 | display: none !important; 223 | max-width: 280px; 224 | text-overflow: ellipsis; 225 | } 226 | 227 | .arcgisSearch .searchMenu { 228 | color: #6e6e6e; 229 | font-size: 9pt; 230 | max-width: 280px; 231 | } 232 | 233 | .arcgisSearch .searchGroup .searchInput::-webkit-input-placeholder { 234 | color: #e6e6e6; 235 | } 236 | .arcgisSearch .searchGroup .searchInput:-moz-placeholder { 237 | color: #e6e6e6; 238 | } 239 | .arcgisSearch .searchGroup .searchInput::-moz-placeholder { 240 | color: #e6e6e6; 241 | } 242 | .arcgisSearch .searchGroup .searchInput:-ms-input-placeholder { 243 | color: #e6e6e6; 244 | } 245 | 246 | .esriControlsBR { 247 | position: absolute; 248 | left: 0px; 249 | bottom: 0px; 250 | } 251 | 252 | .logo-med { 253 | position: absolute; 254 | left: 0px; 255 | bottom: 0px; 256 | } 257 | 258 | .logo-sm { 259 | position: absolute; 260 | left: 0px; 261 | bottom: 0px; 262 | } 263 | 264 | .esriAttribution { 265 | position: absolute; 266 | left: 65px; 267 | bottom: 5px; 268 | } 269 | 270 | .HomeButton .home { 271 | top: 0px; 272 | padding: 0px; 273 | width: 26px; 274 | height: 26px; 275 | background-color: transparent; 276 | -webkit-user-select: none; 277 | -moz-user-select: none; 278 | -ms-user-select: none; 279 | user-select: none; 280 | cursor: pointer; 281 | -webkit-border-radius: 13px; 282 | -moz-border-radius: 13px; 283 | -o-border-radius: 13px; 284 | border-radius: 13px; 285 | background-size: 14px 14px; 286 | } 287 | 288 | /* Locate */ 289 | 290 | .LocateButton .zoomLocateButton { 291 | padding: 0px; 292 | width: 30px; 293 | height: 30px; 294 | background-color: transparent; 295 | -webkit-user-select: none; 296 | -moz-user-select: none; 297 | -ms-user-select: none; 298 | user-select: none; 299 | cursor: pointer; 300 | -webkit-border-radius: 15px; 301 | -moz-border-radius: 15px; 302 | -o-border-radius: 15px; 303 | border-radius: 15px; 304 | background-size: 20px 20px; 305 | } 306 | 307 | .LocateButton .loading { 308 | background-image: url('../images/loading.gif'); 309 | background-repeat: no-repeat; 310 | background-position: center center; 311 | } 312 | 313 | .sizer .titlePane{ 314 | height: 30px; 315 | } 316 | 317 | .esriPopup .titlePane { 318 | border: none !important; 319 | } 320 | 321 | .esriPopup .contentPane { 322 | background-color: #FFFFFF; 323 | } 324 | 325 | .esriPopup .actionsPane { 326 | background-color: #FFFFFF; 327 | } 328 | 329 | .esriPopup { 330 | font-size: 9px !important; 331 | } 332 | 333 | .esriPopup .pointer{ 334 | display: none !important; 335 | } 336 | 337 | .esriPopup .outerPointer { 338 | display: none !important; 339 | } 340 | 341 | .esriPopup .titleButton.maximize { 342 | display: none !important; 343 | } 344 | 345 | .dijitSliderBumper { 346 | display: none; 347 | } 348 | 349 | .dijitSliderImageHandleH { 350 | border: 0; 351 | width: 18px; 352 | height: 16px; 353 | background-image: url("../images/sliderThumbs.png") !important; 354 | background-repeat: no-repeat; 355 | background-position: 0 0; 356 | } 357 | 358 | .dijitSliderBar .dijitSliderRemainingBar, .dijitSlider .dijitSliderRemainingBarH, .dijitSlider .dijitSliderRightBumper, .dijitSliderFocused .dijitSliderRemainingBarH, .dijitSliderFocused .dijitSliderRightBumper { 359 | background-color: rgba(0,0,0,0.2) !important; 360 | border: 0px solid transparent !important; 361 | height: 2px !important; 362 | border-radius: 2px; 363 | -moz-border-radius: 2px; 364 | } 365 | 366 | .dijitSlider .dijitSliderProgressBarH, .claro .dijitSlider .dijitSliderLeftBumper 367 | .dijitSliderFocused .dijitSliderProgressBarH, .claro .dijitSliderFocused .dijitSliderLeftBumper { 368 | background-color: #ffffff; 369 | border: 0px solid #ffffff; 370 | border-radius: 2px; 371 | -moz-border-radius: 2px; 372 | height: 2px; 373 | border: transparent; 374 | } 375 | 376 | .esriStopsContainer { 377 | display: none; 378 | } 379 | 380 | .esriResultsButtonsContainer { 381 | display: none; 382 | } 383 | 384 | /* Template */ 385 | 386 | .bg { 387 | display: block; 388 | background-color: rgb(255,255,255); 389 | -moz-opacity: 0.9; 390 | -khtml-opacity: 0.9; 391 | opacity: 0.9; 392 | filter: alpha(opacity=90); 393 | } 394 | 395 | .rounded { 396 | -moz-border-radius: 5px 5px 5px 5px; 397 | -webkit-border-radius: 5px 5px 5px 5px; 398 | border-radius: 5px 5px 5px 5px; 399 | } 400 | 401 | .roundedTop { 402 | -moz-border-radius: 5px 5px 0 0; 403 | -webkit-border-radius: 5px 5px 0 0; 404 | border-radius: 5px 5px 0 0; 405 | } 406 | 407 | .shadow { 408 | -moz-box-shadow: 3px 3px 10px rgba(0,0,0,0.3); 409 | -webkit-box-shadow: 3px 3px 10px rgba(0,0,0,0.3); 410 | box-shadow: 3px 3px 10px rgba(0,0,0,0.3); 411 | -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=10, Direction=135, Color='#000000')"; 412 | /*filter: progid:DXImageTransform.Microsoft.Shadow(Strength=10, Direction=135, Color='#000000');*/ 413 | } 414 | 415 | #panelDirections { 416 | position: absolute; 417 | right: 0px; 418 | top: 0px; 419 | width: 320px; 420 | height: 100%; 421 | display: none; 422 | } 423 | 424 | #panelContent { 425 | position: absolute; 426 | right: 0px; 427 | top: 0px; 428 | width: 320px; 429 | height: 100%; 430 | display: block; 431 | overflow-x: hidden; 432 | overflow-y: auto; 433 | } 434 | 435 | #panelPages { 436 | width: 100%; 437 | height: 100%; 438 | overflow: visible; 439 | } 440 | 441 | .pageblank { 442 | width: 0px; 443 | height: 100%; 444 | } 445 | 446 | .page { 447 | position: relative; 448 | width: 320px; 449 | height: 100%; 450 | display: block; 451 | background-color: rgba(0,0,0,0.15); 452 | } 453 | 454 | .pageContent { 455 | position:absolute; 456 | left: 10px; 457 | right: 10px; 458 | top: 5px; 459 | bottom: 5px; 460 | overflow: hidden; 461 | display: block; 462 | background-color: #ffffff; 463 | } 464 | 465 | .pageHeader { 466 | position: relative; 467 | width: 100%; 468 | height: 240px; 469 | text-align: center; 470 | display: block; 471 | } 472 | 473 | .pageTitle { 474 | position: relative; 475 | left: 0px; 476 | top: 5px; 477 | width : 100%; 478 | height: 20px; 479 | font-size: 11px; 480 | color: #ffffff; 481 | line-height: 20px; 482 | text-align: center; 483 | overflow: hidden; 484 | white-space:nowrap; 485 | } 486 | 487 | .pageCounter { 488 | position: absolute; 489 | left: 50%; 490 | margin-left: -80px; 491 | top: 35px; 492 | width: 140px; 493 | font-size: 90px; 494 | height: 140px; 495 | line-height: 140px; 496 | font-family: Steelfish; 497 | border: 10px solid rgba(0,0,0,1); 498 | -moz-border-radius: 80px; 499 | -webkit-border-radius: 80px; 500 | border-radius: 80px; 501 | opacity:0.3; 502 | filter:alpha(opacity=30); 503 | } 504 | 505 | .pageIcon { 506 | position: absolute; 507 | left: 25px; 508 | top: 25px; 509 | width: 90px; 510 | height: 90px; 511 | } 512 | 513 | .pageReverseDir { 514 | position: absolute; 515 | left: 50%; 516 | bottom: 5px; 517 | width: 30px; 518 | height: 30px; 519 | margin-left: -15px; 520 | cursor: pointer; 521 | background-image: url('../images/reverse.png'); 522 | background-repeat: no-repeat; 523 | } 524 | 525 | .pageUnits { 526 | position: absolute; 527 | left: 50%; 528 | margin-left: -90px; 529 | bottom: 25px; 530 | width: 180px; 531 | height: 10px; 532 | font-size: 8px; 533 | color: #000000; 534 | text-align: center; 535 | -moz-opacity: 0.5; 536 | -khtml-opacity: 0.5; 537 | opacity: 0.5; 538 | filter: alpha(opacity=50); 539 | } 540 | 541 | .pageSlider { 542 | position: absolute; 543 | left: 50%; 544 | margin-left: -90px; 545 | bottom: 5px; 546 | width: 180px; 547 | height: 20px; 548 | z-index: 200; 549 | display: block; 550 | background-image: url('../images/slider.png'); 551 | background-repeat: no-repeat; 552 | background-position:bottom; 553 | } 554 | 555 | .pageClose { 556 | position: absolute; 557 | right: 5px; 558 | top: 5px; 559 | background-image: url('../images/close.png'); 560 | background-repeat: no-repeat; 561 | cursor: pointer; 562 | width: 20px; 563 | height: 20px; 564 | display: block; 565 | } 566 | 567 | .pageUp { 568 | position: absolute; 569 | top: 27px; 570 | right: 5px; 571 | background-image: url('../images/up.png'); 572 | background-repeat: no-repeat; 573 | cursor: pointer; 574 | width: 20px; 575 | height: 20px; 576 | display: block; 577 | } 578 | 579 | .pageDown { 580 | position: absolute; 581 | top: 49px; 582 | right: 5px; 583 | background-image: url('../images/down.png'); 584 | background-repeat: no-repeat; 585 | cursor: pointer; 586 | width: 20px; 587 | height: 20px; 588 | display: block; 589 | } 590 | 591 | .pageBody { 592 | position: absolute; 593 | top: 240px; 594 | bottom: 0px; 595 | width: 100%; 596 | display: block; 597 | color: #000000; 598 | font-size: 10px; 599 | text-align: center; 600 | padding: 0px; 601 | overflow-x: hidden; 602 | overflow-y: auto; 603 | } 604 | 605 | .pageClear { 606 | position: absolute; 607 | bottom: -10px; 608 | height: 10px; 609 | width: 100%; 610 | display:block; 611 | background-color: rgba(0,0,0,0.15); 612 | } 613 | 614 | .resultsContent { 615 | position: absolute; 616 | width: 100%; 617 | display: block; 618 | } 619 | 620 | .recDemographics { 621 | width: 100%; 622 | height: 65px; 623 | display: block; 624 | border-bottom: 1px solid #dcdcdc; 625 | text-align: center; 626 | font-size: 11px; 627 | line-height: 20px; 628 | color: #6e6e6e; 629 | } 630 | 631 | .recLifestyle { 632 | width: 100%; 633 | display: block; 634 | text-align: center; 635 | font-size: 11px; 636 | line-height: 14px; 637 | color: #6e6e6e; 638 | } 639 | 640 | .recWeather { 641 | width: 100%; 642 | height: 65px; 643 | display: block; 644 | border-bottom: 1px solid #dcdcdc; 645 | text-align: center; 646 | font-size: 11px; 647 | line-height: 20px; 648 | color: #6e6e6e; 649 | } 650 | 651 | .recLeft { 652 | float: left; 653 | width: 50%; 654 | height: 100%; 655 | } 656 | 657 | .recRight { 658 | float: left; 659 | width: 50%; 660 | height: 100%; 661 | } 662 | 663 | .imgWeather { 664 | height: 80%; 665 | margin: 10%; 666 | } 667 | 668 | .recProximity { 669 | float: left; 670 | width: 100%; 671 | height: auto; 672 | min-height: 59px; 673 | border-bottom: 1px solid #afafaf; 674 | text-align: left; 675 | font-size: 11px; 676 | line-height: 14px; 677 | line-height: 20px; 678 | color: #6e6e6e; 679 | background-image: url('../images/more.png'); 680 | background-repeat: no-repeat; 681 | background-position: left top; 682 | transition: 0.2s linear; 683 | -webkit-transition: 0.2s linear; 684 | } 685 | 686 | .recOpened { 687 | background: none; 688 | background-position: right center; 689 | background-color: #e6e6e6; 690 | } 691 | 692 | .recHeader { 693 | float: left; 694 | width: 100%; 695 | height: 59px; 696 | cursor: pointer; 697 | } 698 | 699 | .recNum { 700 | float: left; 701 | margin: 10px; 702 | width: 30px; 703 | height: 30px; 704 | text-align: center; 705 | font-size: 10px; 706 | line-height: 30px; 707 | color: #ffffff; 708 | -moz-border-radius: 15px; 709 | -webkit-border-radius: 15px; 710 | border-radius: 15px; 711 | } 712 | 713 | .recHeaderInfo { 714 | float: left; 715 | margin: 10px 0 10px 0; 716 | width: calc(100% - 110px); 717 | min-width: 190px; 718 | height: 39px; 719 | display: inline; 720 | white-space: nowrap; 721 | overflow: hidden; 722 | text-overflow:ellipsis; 723 | } 724 | 725 | .recDist { 726 | line-height: 15px; 727 | font-size: 11px; 728 | color: #888888; 729 | font-weight: 300; 730 | } 731 | 732 | .recRoute { 733 | float: left; 734 | margin: 10px 0 10px 0; 735 | width: 30px; 736 | height: 30px; 737 | background-image: url('../images/car.png'); 738 | background-repeat: no-repeat; 739 | background-position: center center; 740 | cursor: pointer; 741 | } 742 | 743 | .recBody { 744 | float: left; 745 | width: 100%; 746 | overflow: visible; 747 | } 748 | 749 | .recDetails { 750 | float: left; 751 | width: 100%; 752 | } 753 | 754 | .mainSection .header { 755 | display: none; 756 | } 757 | 758 | .dijitContentPane { 759 | padding: 0px 8px 8px 8px!important; 760 | } 761 | 762 | .hzLine { 763 | border-top: 1px solid #ffffff !important; 764 | } 765 | 766 | .num { 767 | font-size: 30px; 768 | font-family: Steelfish; 769 | line-height: 40px; 770 | } 771 | 772 | 773 | #panelTop { 774 | position: fixed; 775 | left: 30px; 776 | top: 5px; 777 | color: #ffffff; 778 | font-family: HelveticaNeueUltraLight; 779 | font-size: 20px; 780 | font-weight: normal; 781 | padding: 5px; 782 | display: block; 783 | overflow: visible; 784 | height: auto; 785 | } 786 | 787 | #panelTitle { 788 | height: 30px; 789 | color: #ffffff; 790 | float: left; 791 | padding: 0; 792 | display: block; 793 | } 794 | 795 | #panelLogo { 796 | width: 30px; 797 | height: 30px; 798 | overflow: hidden; 799 | float: left; 800 | line-height: 30px; 801 | } 802 | 803 | #panelText { 804 | float: left; 805 | height: 30px; 806 | line-height: 30px; 807 | overflow: hidden; 808 | /*max-width: 220px; 809 | text-overflow:ellipsis; 810 | white-space:nowrap;*/ 811 | margin: 0 5px 0 5px; 812 | } 813 | 814 | #panelSearch { 815 | float: left; 816 | margin: 0; 817 | width: auto; 818 | max-width: 285px; 819 | height: 28px; 820 | color: #6e6e6e; 821 | /*overflow: hidden;*/ 822 | } 823 | 824 | #btnLocate { 825 | float: left; 826 | width: 30px; 827 | height: 30px; 828 | } 829 | 830 | #panelMenu { 831 | position: fixed; 832 | right: 5px; 833 | top: 5px; 834 | width: 30px; 835 | height: 30px; 836 | text-align: center; 837 | padding: 5px; 838 | cursor: pointer; 839 | display: block; 840 | background-image: url('../images/menu.png'); 841 | background-repeat:no-repeat; 842 | background-position: center center; 843 | } 844 | 845 | 846 | /* MEDIA SPECIFIC: SMALL TABLETS */ 847 | 848 | @media only screen and (max-width: 700px) { 849 | 850 | html, body { 851 | overflow-x: hidden!important; 852 | } 853 | 854 | .esriSimpleSlider { 855 | display: none; 856 | } 857 | 858 | #panelTop { 859 | left: 5px; 860 | } 861 | 862 | #panelText { 863 | display: none; 864 | } 865 | 866 | } 867 | 868 | 869 | 870 | /* MEDIA SPECIFIC: PHONES */ 871 | 872 | @media only screen and (max-width: 500px) { 873 | 874 | html, body { 875 | /*overflow-x: hidden;*/ 876 | } 877 | 878 | .esriSimpleSlider { 879 | display: none; 880 | } 881 | 882 | #panelTop { 883 | left: 5px; 884 | } 885 | 886 | #panelLogo { 887 | display: none; 888 | } 889 | 890 | #panelText { 891 | display: none; 892 | } 893 | 894 | #panelContent { 895 | position: absolute; 896 | left: 0px; 897 | top: 0px; 898 | width: 100%; 899 | height: 100%; 900 | display: block; 901 | } 902 | 903 | #panelDirections { 904 | position: absolute; 905 | left: 0px; 906 | top: 0px; 907 | width: 100%; 908 | height: 100%; 909 | display: none; 910 | } 911 | 912 | .pageblank { 913 | width: 0px; 914 | height: 100%; 915 | } 916 | 917 | .page { 918 | position: relative; 919 | width: 100%; 920 | margin-left: 0; 921 | height: 100%; 922 | display: block; 923 | background-color: rgba(0,0,0,0.15); 924 | } 925 | 926 | /*.pageContent { 927 | top: 60px; 928 | }*/ 929 | 930 | .pageHeader { 931 | position: relative; 932 | width: 100%; 933 | height: 110px; 934 | text-align: center; 935 | display: block; 936 | } 937 | 938 | .pageTitle { 939 | position: absolute; 940 | left: 80px; 941 | right: 80px; 942 | width: auto; 943 | top: 30px; 944 | height: 20px; 945 | font-size: 11px; 946 | color: #ffffff; 947 | line-height: 20px; 948 | overflow: hidden; 949 | text-align: center; 950 | } 951 | 952 | .pageCounter { 953 | position: absolute; 954 | left: 5px; 955 | margin-left: 0px; 956 | top: 5px; 957 | width: 60px; 958 | font-size: 40px; 959 | height: 60px; 960 | line-height: 60px; 961 | font-family: Steelfish; 962 | border: 5px solid rgba(0,0,0,1); 963 | -moz-border-radius: 35px; 964 | -webkit-border-radius: 35px; 965 | border-radius: 35px; 966 | opacity:0.3; 967 | filter:alpha(opacity=30); 968 | } 969 | 970 | .pageIcon { 971 | position: absolute; 972 | left: 10px; 973 | top: 10px; 974 | width: 40px; 975 | height: 40px; 976 | } 977 | 978 | .pageBody { 979 | position: absolute; 980 | top: 110px; 981 | bottom: 0px; 982 | width: 100%; 983 | display: block; 984 | color: #000000; 985 | font-size: 10px; 986 | text-align: center; 987 | padding: 0px; 988 | overflow-x: hidden; 989 | overflow-y: scroll; 990 | } 991 | 992 | } 993 | 994 | 995 | 996 | -------------------------------------------------------------------------------- /fonts/helveticaneue.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/helveticaneue.eot -------------------------------------------------------------------------------- /fonts/helveticaneue.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/helveticaneue.ttf -------------------------------------------------------------------------------- /fonts/helveticaneue.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/helveticaneue.woff -------------------------------------------------------------------------------- /fonts/helveticaneueultralight.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/helveticaneueultralight.eot -------------------------------------------------------------------------------- /fonts/helveticaneueultralight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/helveticaneueultralight.ttf -------------------------------------------------------------------------------- /fonts/helveticaneueultralight.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/helveticaneueultralight.woff -------------------------------------------------------------------------------- /fonts/steelfish-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/steelfish-webfont.eot -------------------------------------------------------------------------------- /fonts/steelfish-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/steelfish-webfont.ttf -------------------------------------------------------------------------------- /fonts/steelfish-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/fonts/steelfish-webfont.woff -------------------------------------------------------------------------------- /images/ajax-loader-new.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/ajax-loader-new.gif -------------------------------------------------------------------------------- /images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/ajax-loader.gif -------------------------------------------------------------------------------- /images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/arrow.png -------------------------------------------------------------------------------- /images/car.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/car.png -------------------------------------------------------------------------------- /images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/close.png -------------------------------------------------------------------------------- /images/demographics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/demographics.png -------------------------------------------------------------------------------- /images/directions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/directions.png -------------------------------------------------------------------------------- /images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/down.png -------------------------------------------------------------------------------- /images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/error.png -------------------------------------------------------------------------------- /images/lifestyle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/lifestyle.png -------------------------------------------------------------------------------- /images/lifestyleb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/lifestyleb.png -------------------------------------------------------------------------------- /images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/loading.gif -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/logo.png -------------------------------------------------------------------------------- /images/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/menu.png -------------------------------------------------------------------------------- /images/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/more.png -------------------------------------------------------------------------------- /images/pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/pin.png -------------------------------------------------------------------------------- /images/reverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/reverse.png -------------------------------------------------------------------------------- /images/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/slider.png -------------------------------------------------------------------------------- /images/sliderThumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/sliderThumb.png -------------------------------------------------------------------------------- /images/sliderThumbs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/sliderThumbs.png -------------------------------------------------------------------------------- /images/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/thumb.png -------------------------------------------------------------------------------- /images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/up.png -------------------------------------------------------------------------------- /images/w/cloudy1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy1.png -------------------------------------------------------------------------------- /images/w/cloudy1_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy1_night.png -------------------------------------------------------------------------------- /images/w/cloudy2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy2.png -------------------------------------------------------------------------------- /images/w/cloudy2_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy2_night.png -------------------------------------------------------------------------------- /images/w/cloudy3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy3.png -------------------------------------------------------------------------------- /images/w/cloudy3_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy3_night.png -------------------------------------------------------------------------------- /images/w/cloudy4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy4.png -------------------------------------------------------------------------------- /images/w/cloudy4_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy4_night.png -------------------------------------------------------------------------------- /images/w/cloudy5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/cloudy5.png -------------------------------------------------------------------------------- /images/w/dunno.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/dunno.png -------------------------------------------------------------------------------- /images/w/fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/fog.png -------------------------------------------------------------------------------- /images/w/fog_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/fog_night.png -------------------------------------------------------------------------------- /images/w/hail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/hail.png -------------------------------------------------------------------------------- /images/w/light_rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/light_rain.png -------------------------------------------------------------------------------- /images/w/mist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/mist.png -------------------------------------------------------------------------------- /images/w/mist_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/mist_night.png -------------------------------------------------------------------------------- /images/w/overcast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/overcast.png -------------------------------------------------------------------------------- /images/w/shower1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/shower1.png -------------------------------------------------------------------------------- /images/w/shower1_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/shower1_night.png -------------------------------------------------------------------------------- /images/w/shower2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/shower2.png -------------------------------------------------------------------------------- /images/w/shower2_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/shower2_night.png -------------------------------------------------------------------------------- /images/w/shower3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/shower3.png -------------------------------------------------------------------------------- /images/w/sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/sleet.png -------------------------------------------------------------------------------- /images/w/snow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/snow1.png -------------------------------------------------------------------------------- /images/w/snow1_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/snow1_night.png -------------------------------------------------------------------------------- /images/w/snow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/snow2.png -------------------------------------------------------------------------------- /images/w/snow2_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/snow2_night.png -------------------------------------------------------------------------------- /images/w/snow3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/snow3.png -------------------------------------------------------------------------------- /images/w/snow3_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/snow3_night.png -------------------------------------------------------------------------------- /images/w/snow4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/snow4.png -------------------------------------------------------------------------------- /images/w/snow5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/snow5.png -------------------------------------------------------------------------------- /images/w/sunny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/sunny.png -------------------------------------------------------------------------------- /images/w/sunny_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/sunny_night.png -------------------------------------------------------------------------------- /images/w/tstorm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/tstorm1.png -------------------------------------------------------------------------------- /images/w/tstorm1_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/tstorm1_night.png -------------------------------------------------------------------------------- /images/w/tstorm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/tstorm2.png -------------------------------------------------------------------------------- /images/w/tstorm2_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/tstorm2_night.png -------------------------------------------------------------------------------- /images/w/tstorm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/w/tstorm3.png -------------------------------------------------------------------------------- /images/weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/images/weather.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Local Perspective 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 |
25 | 26 | 27 |
28 |
29 | 30 |
31 |
32 |
33 | 34 |
35 | 36 |
37 | 38 |
39 | 42 |
43 | Local Perspective 44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | 52 |
53 | 78 | 79 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /js/DemographicsInfo.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'dojo/_base/declare', 3 | 'dojo/_base/lang', 4 | 'dojo/dom-class', 5 | 'dojo/dom-construct', 6 | 'dojo/number', 7 | 'esri/tasks/query', 8 | 'esri/tasks/QueryTask', 9 | 'esri/tasks/StatisticDefinition' 10 | ],function( 11 | declare, 12 | lang, 13 | domClass, 14 | domConstruct, 15 | number, 16 | Query, 17 | QueryTask, 18 | StatisticDefinition 19 | ){ 20 | 21 | var demographicsInfo = declare('DemographicsInfo', null, { 22 | 23 | config : null, 24 | fields : [], 25 | aliases : [], 26 | location : null, 27 | container : null, 28 | pageObj : null, 29 | 30 | constructor: function(config) { 31 | this.config = config; 32 | this.fields = this.config.demographicsFields.split(","); 33 | this.aliases = this.config.demographicsAliases.split(","); 34 | }, 35 | 36 | // update for location 37 | updateForLocation: function(location, container, pageObj) { 38 | this.location = location; 39 | this.container = container; 40 | this.container.innerHTML = "

"; 41 | this.pageObj = pageObj; 42 | 43 | var url = this.config.demographicsURL + "?ts=" + new Date().getTime(); 44 | var queryTask = new QueryTask(url); 45 | var query = new Query(); 46 | var outStats = []; 47 | for (var i=0; i 0) { 74 | var feature = results.features[0]; 75 | for (var i=0; i" + number.format(feature.attributes[fld]) + "" 81 | }, content); 82 | domClass.add(div, 'recDemographics'); 83 | } 84 | 85 | } 86 | }, 87 | 88 | // error handler 89 | _errorHandler: function(error) { 90 | this.container.innerHTML = ""; 91 | domConstruct.create("div", { 92 | innerHTML: error.message 93 | }, this.container); 94 | } 95 | 96 | }); 97 | 98 | return demographicsInfo; 99 | 100 | }); -------------------------------------------------------------------------------- /js/OAuthHelper.js: -------------------------------------------------------------------------------- 1 | /*global define,console */ 2 | /*jslint browser:true,sloppy:true,unparam:true,regexp:true */ 3 | /* 4 | | Copyright 2014 Esri 5 | | 6 | | Licensed under the Apache License, Version 2.0 (the "License"); 7 | | you may not use this file except in compliance with the License. 8 | | You may obtain a copy of the License at 9 | | 10 | | http://www.apache.org/licenses/LICENSE-2.0 11 | | 12 | | Unless required by applicable law or agreed to in writing, software 13 | | distributed under the License is distributed on an "AS IS" BASIS, 14 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | | See the License for the specific language governing permissions and 16 | | limitations under the License. 17 | */ 18 | define([ 19 | "dojo/_base/lang", 20 | "dojo/json", 21 | "dojo/cookie", 22 | "dojo/Deferred", 23 | "dojo/io-query", 24 | "esri/IdentityManager", 25 | "dojo/hash" 26 | ], function ( 27 | lang, 28 | JSON, 29 | cookie, 30 | Deferred, 31 | ioQuery, 32 | IdentityManager, 33 | hash 34 | ) { 35 | var OAuthHelper = { 36 | portal: location.protocol + "//www.arcgis.com", 37 | init: function (parameters) { 38 | /** 39 | * parameters = { 40 | * appId: "", 41 | * portal: "", // default is "http://www.arcgis.com" 42 | * expiration: // in minutes 43 | * } 44 | */ 45 | lang.mixin(this, parameters); 46 | this.portalUrl = this.portal + "/sharing/rest"; 47 | // Read OAuth response from the page url fragment if available, 48 | // and register with identity manager 49 | this.checkOAuthResponse(true); 50 | // Read token from cookie if available, and register 51 | // with identity manager 52 | this.checkCookie(); 53 | // You don't need this if you require your users to sign-in 54 | // before using the app. This override helps trigger OAuth 55 | // flow instead of the legacy generateToken flow. 56 | this.overrideIdentityManager(); 57 | }, 58 | isSignedIn: function () { 59 | return !!IdentityManager.findCredential(this.portalUrl); 60 | }, 61 | signIn: function () { 62 | var deferred, authParameters, redirect_uri, l, authUrl; 63 | 64 | this.deferred = new Deferred(); 65 | deferred = this.deferred; 66 | authParameters = { 67 | client_id: this.appId, 68 | response_type: "token", 69 | expiration: this.expiration // in minutes. Default is 30. 70 | }; 71 | //if there are url params append the auth parameters with an & 72 | l = window.location.href; 73 | if (l.indexOf("?") > 0) { 74 | redirect_uri = window.location.href.replace(/#.*$/, "") + "&"; 75 | } else { 76 | redirect_uri = window.location.href.replace(/#.*$/, ""); 77 | } 78 | authParameters.redirect_uri = redirect_uri; 79 | authUrl = this.portal.replace(/^http:/i, "https:") + "/sharing/oauth2/authorize?" + ioQuery.objectToQuery(authParameters); 80 | window.location = authUrl; 81 | return deferred; 82 | }, 83 | signOut: function () { 84 | // Delete the cookie 85 | cookie("arcgis_auth", null, { 86 | expires: -1, 87 | path: "/", 88 | domain: document.domain 89 | }); 90 | window.location.reload(); 91 | }, 92 | checkOAuthResponse: function (clearHash) { 93 | var oauthResponse, error, credential; 94 | 95 | // This method will be called from popup callback page as well 96 | oauthResponse = this.parseFragment(); 97 | if (oauthResponse) { 98 | if (clearHash) { // redirection flow 99 | // Remove OAuth bits from the URL fragment 100 | window.location.hash = ""; 101 | } 102 | if (oauthResponse.error) { 103 | error = new Error(oauthResponse.error); 104 | error.details = [oauthResponse.error_description]; 105 | if (this.deferred) { 106 | this.deferred.reject(error); 107 | } 108 | } else { 109 | credential = this.registerToken(oauthResponse); 110 | // User checked "Keep me signed in" option 111 | if (oauthResponse.persist) { 112 | if (document.domain === "localhost") { 113 | // Do not include the domain because "localhost" won't work. See http://stackoverflow.com/a/489465 114 | cookie("arcgis_auth", JSON.stringify(oauthResponse), { 115 | // expires: new Date(oauthResponse.expires_at), 116 | path: "/" 117 | }); 118 | } else { 119 | // Include the domain 120 | cookie("arcgis_auth", JSON.stringify(oauthResponse), { 121 | //expires: new Date(oauthResponse.expires_at), 122 | path: "/", 123 | domain: document.domain 124 | }); 125 | } 126 | console.log("[Cookie] Write: ", cookie("arcgis_auth")); 127 | } 128 | if (this.deferred) { 129 | this.deferred.resolve(credential); 130 | } 131 | } 132 | } 133 | }, 134 | checkCookie: function () { 135 | var ckie, oauthResponse; 136 | 137 | ckie = cookie("arcgis_auth"); 138 | if (ckie) { 139 | console.log("[Cookie] Read: ", ckie); 140 | oauthResponse = JSON.parse(ckie); 141 | this.registerToken(oauthResponse); 142 | } 143 | }, 144 | registerToken: function (oauthResponse) { 145 | // Register the access token with Identity Manager, so that 146 | // it can be added to all ArcGIS Online REST API requests 147 | IdentityManager.registerToken({ 148 | server: this.portalUrl, 149 | userId: oauthResponse.username, 150 | token: oauthResponse.access_token, 151 | expires: oauthResponse.expires_at, 152 | ssl: oauthResponse.ssl 153 | }); 154 | var credential = IdentityManager.findCredential(this.portalUrl, oauthResponse.username); 155 | console.log("Token registered with Identity Manager: ", credential); 156 | return credential; 157 | }, 158 | parseFragment: function () { 159 | var h, fragment; 160 | 161 | h = hash(); 162 | fragment = h ? ioQuery.queryToObject(h) : null; 163 | if (fragment) { 164 | if (fragment.access_token) { 165 | console.log("[OAuth Response]: ", fragment); 166 | // Convert from String to Number 167 | fragment.expires_in = Number(fragment.expires_in); 168 | // Calculate universal time 169 | fragment.expires_at = (new Date()).getTime() + (fragment.expires_in * 1000); 170 | fragment.ssl = (fragment.ssl === "true"); 171 | } else if (fragment.error) { 172 | console.log("[OAuth Error]: ", fragment.error, " - ", fragment.error_description); 173 | } 174 | return fragment; 175 | } 176 | }, 177 | overrideIdentityManager: function () { 178 | var signInMethod, helper; 179 | 180 | signInMethod = IdentityManager.signIn; 181 | helper = this; 182 | IdentityManager.signIn = function (url, serverInfo) { 183 | return (serverInfo.server.indexOf(".arcgis.com") !== -1) ? 184 | // OAuth flow 185 | helper.signIn() : 186 | // generateToken flow 187 | signInMethod.apply(this, arguments); 188 | }; 189 | } 190 | }; 191 | window.OAuthHelper = OAuthHelper; 192 | return OAuthHelper; 193 | }); 194 | -------------------------------------------------------------------------------- /js/ProximityInfo.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'dojo/Evented', 3 | 'dojo/_base/declare', 4 | 'dojo/_base/event', 5 | 'dojo/_base/lang', 6 | 'dojo/dom', 7 | 'dojo/dom-class', 8 | 'dojo/dom-construct', 9 | 'dojo/on', 10 | 'dojo/query', 11 | 'dijit/layout/ContentPane', 12 | 'dijit/registry', 13 | //'esri/geometry/mathUtils', 14 | 'esri/geometry/geometryEngine', 15 | 'esri/geometry/Polyline', 16 | 'esri/geometry/webMercatorUtils', 17 | 'esri/tasks/query', 18 | 'esri/tasks/QueryTask' 19 | ],function( 20 | Evented, 21 | declare, 22 | event, 23 | lang, 24 | dom, 25 | domClass, 26 | domConstruct, 27 | on, 28 | query, 29 | ContentPane, 30 | registry, 31 | //mathUtils, 32 | geometryEngine, 33 | Polyline, 34 | webMercatorUtils, 35 | Query, 36 | QueryTask 37 | ){ 38 | 39 | var proximityInfo = declare('ProximityInfo', [Evented], { 40 | 41 | config : null, 42 | map : null, 43 | location : null, 44 | container : null, 45 | pageObj : null, 46 | 47 | constructor : function(config) { 48 | this.config = config; 49 | }, 50 | 51 | // update for location 52 | updateForLocation : function(location, container, pageObj) { 53 | this.location = location; 54 | this.container = container; 55 | this.container.innerHTML = "

"; 56 | this.pageObj = pageObj; 57 | 58 | this._unselectRecords(); 59 | this.pageObj.selectedNum = null; 60 | 61 | var layerType = pageObj.layerType; 62 | 63 | if (layerType == "Feature Layer") { 64 | this._queryFeatures(); 65 | } else { 66 | this._filterFeatures(); 67 | } 68 | }, 69 | 70 | // query features 71 | _queryFeatures : function() { 72 | // ST updated to fix Arcade expressions and domain issues 73 | var layer = this.pageObj.layer; 74 | //var url = layer.url + "?ts=" + new Date().getTime(); 75 | //var queryTask = new QueryTask(url); 76 | var query = new Query(); 77 | query.outFields = ["*"]; 78 | query.maxAllowableOffset = 0; 79 | query.returnGeometry = true; 80 | if (this.pageObj.defExp) 81 | query.where = this.pageObj.defExp; 82 | query.geometry = this.pageObj.buffer; 83 | query.spatialRelationship = Query.SPATIAL_REL_INTERSECTS; 84 | //queryTask.execute(query, lang.hitch(this, this._resultsHandler), lang.hitch(this, this._errorHandler)); 85 | layer.queryFeatures(query, lang.hitch(this, this._resultsHandler), lang.hitch(this, this._errorHandler)); 86 | }, 87 | 88 | // filter features 89 | _filterFeatures : function() { 90 | var buffer = this.pageObj.buffer; 91 | var layer = this.pageObj.layer; 92 | var features = []; 93 | for (var i = 0; i < layer.graphics.length; i++) { 94 | var gra = layer.graphics[i]; 95 | var geom = gra.geometry; 96 | var pt = geom; 97 | if (geom.type != "point") 98 | pt = this._getPointForGeometry(geom); 99 | if (buffer.contains(pt)) { 100 | features.push(gra); 101 | } 102 | } 103 | this._resultsHandler({ 104 | features : features 105 | }); 106 | }, 107 | 108 | // results handler 109 | _resultsHandler : function(results) { 110 | this.container.innerHTML = ""; 111 | 112 | var proximityFeatures = []; 113 | var features = results.features; 114 | if (features.length > 0) { 115 | 116 | // process features 117 | for (var i = 0; i < features.length; i++) { 118 | var gra = features[i]; 119 | var geom = gra.geometry; 120 | var pt = geom; 121 | if (geom.type != "point") 122 | pt = this._getPointForGeometry(geom); 123 | var dist = this._getDistance(pt); 124 | gra.attributes.DISTANCE = dist; 125 | gra.attributes.POINT_LOCATION = pt; 126 | gra.setInfoTemplate(this.pageObj.layer.infoTemplate); 127 | proximityFeatures.push(gra); 128 | } 129 | 130 | // sort by distance 131 | proximityFeatures.sort(this._compareDistance); 132 | this.pageObj.proximityFeatures = proximityFeatures.slice(); 133 | 134 | // create content 135 | var content = domConstruct.create("div", { 136 | }, this.container); 137 | domClass.add(content, 'resultsContent'); 138 | 139 | for (var i = 0; i < proximityFeatures.length; i++) { 140 | var feature = proximityFeatures[i]; 141 | var geom = feature.geometry; 142 | var dist = feature.attributes.DISTANCE; 143 | 144 | var num = i + 1; 145 | 146 | //rec 147 | var rec = domConstruct.create("div", { 148 | id : 'rec_' + this.pageObj.id + '_' + i 149 | }, content); 150 | domClass.add(rec, 'recProximity'); 151 | 152 | //header 153 | var recHeader = domConstruct.create("div", { 154 | }, rec); 155 | domClass.add(recHeader, 'recHeader'); 156 | on(recHeader, "click", lang.hitch(this, this._selectRecord, i)); 157 | 158 | // num 159 | var recNum = domConstruct.create("div", { 160 | style : "background-color:" + this.pageObj.color, 161 | innerHTML : num 162 | }, recHeader); 163 | domClass.add(recNum, 'recNum'); 164 | 165 | //headerInfo 166 | var recHeaderInfo = domConstruct.create("div", { 167 | }, recHeader); 168 | domClass.add(recHeaderInfo, 'recHeaderInfo'); 169 | 170 | // info 171 | var info = feature.getTitle(); 172 | if (info === "") { 173 | info = this.pageObj.label; 174 | } 175 | 176 | // distance 177 | var infoDist = "~" + Math.round(dist * 100) / 100 + " " + this.config.distanceUnits.toUpperCase(); 178 | 179 | recHeaderInfo.innerHTML = info +"
" + infoDist + ""; 180 | 181 | // directions 182 | var tip = "Directions"; 183 | if (this.config && this.config.i18n) { 184 | tip = this.config.i18n.tooltips.directions; 185 | } 186 | //if (geom.type == "point" && this.config.showDirections == true) { 187 | if (this.config.showDirections === true || this.config.showDirections === "true") { 188 | var recRoute = domConstruct.create("div", { 189 | title: tip 190 | }, recHeader); 191 | domClass.add(recRoute, 'recRoute'); 192 | //on(recRoute, "click", lang.hitch(this, this._routeToLocation, pt)); 193 | recRoute.select = lang.hitch(this, this._selectRoute); 194 | on(recRoute, "click", lang.partial(recRoute.select, i)); 195 | } 196 | 197 | //body 198 | var recBody = domConstruct.create("div", { 199 | id : 'recBody_' + this.pageObj.id + '_' + i 200 | }, rec); 201 | domClass.add(recBody, 'recBody'); 202 | } 203 | 204 | } 205 | dom.byId("pageCounter_" + this.pageObj.id).innerHTML = proximityFeatures.length; 206 | this.emit('updated', { 207 | data : proximityFeatures 208 | }); 209 | }, 210 | 211 | // error handler 212 | _errorHandler : function(error) { 213 | this.container.innerHTML = ""; 214 | domConstruct.create("div", { 215 | innerHTML : error.message 216 | }, this.container); 217 | this.emit('updated', { 218 | data : null 219 | }); 220 | }, 221 | 222 | // get point for geometry 223 | _getPointForGeometry : function(geom) { 224 | if (geom.type == "polygon") 225 | return geom.getCentroid(); 226 | if (geom.type == "polyline") { 227 | var pathNum = Math.floor(geom.paths.length / 2); 228 | var ptNum = Math.floor(geom.paths[pathNum].length / 2); 229 | return geom.getPoint(pathNum, ptNum); 230 | } 231 | return geom.getExtent().getCenter(); 232 | }, 233 | 234 | 235 | // get distance 236 | // _getDistance : function(loc) { 237 | // var dist = 0; 238 | // dist = mathUtils.getLength(this.location, loc) * 0.000621371; 239 | // if (this.config.distanceUnits === "kilometers") { 240 | // dist = dist * 1.60934; 241 | // } else if (this.config.distanceUnits === "meters") { 242 | // dist = dist * 1609.34; 243 | // } 244 | // return dist; 245 | // }, 246 | 247 | // get distance 248 | _getDistance: function(geom1) { 249 | var dist = 0; 250 | var geom2 = this.location; 251 | if (geom1.spatialReference.wkid === 4326) { 252 | geom1 = webMercatorUtils.geographicToWebMercator(geom1); 253 | } 254 | if (geom2.spatialReference.wkid === 4326) { 255 | geom2 = webMercatorUtils.geographicToWebMercator(geom2); 256 | } 257 | var units = this.config.distanceUnits; 258 | var geomLine = new Polyline(geom1.spatialReference); 259 | geomLine.addPath([geom1, geom2]); 260 | if (geom1.spatialReference.isWebMercator()) { 261 | dist = geometryEngine.geodesicLength(geomLine, 9001); 262 | } else { 263 | dist = geometryEngine.planarLength(geomLine, 9001); 264 | } 265 | switch (units) { 266 | case "miles": 267 | dist *= 0.000621371; 268 | break; 269 | case "kilometers": 270 | dist *= 0.001; 271 | break; 272 | } 273 | return dist; 274 | }, 275 | 276 | // zoom to location 277 | _zoomToLocation : function(gra) { 278 | var loc = gra.attributes.POINT_LOCATION; 279 | //this.map.centerAndZoom(loc, this.config.defaultZoomLevel || 14); 280 | this.map.centerAt(loc); 281 | }, 282 | 283 | // route to location 284 | _routeToLocation : function(loc) { 285 | if (this.config.showDirections) 286 | this.emit('route', { 287 | data : loc 288 | }); 289 | }, 290 | 291 | // compare distance 292 | _compareDistance : function(a, b) { 293 | if (a.attributes.DISTANCE < b.attributes.DISTANCE) 294 | return -1; 295 | if (a.attributes.DISTANCE > b.attributes.DISTANCE) 296 | return 1; 297 | return 0; 298 | }, 299 | 300 | // Select Feature 301 | selectFeature : function(gra) { 302 | var num = gra.id; 303 | num = num.replace("R_", "").replace("T_", ""); 304 | this._selectRecord(parseInt(num), false); 305 | }, 306 | 307 | // Select Record 308 | _selectRecord : function(num, zoom) { 309 | if(typeof(zoom)==='undefined') { 310 | zoom = true; 311 | } 312 | this._unselectRecords(); 313 | if (num != this.pageObj.selectedNum) { 314 | this._highlightRecord(num, zoom); 315 | } else { 316 | this.pageObj.selectedNum = null; 317 | this.emit('highlight', { 318 | data : null 319 | }); 320 | } 321 | }, 322 | 323 | // Highlight Record 324 | _highlightRecord : function(num, zoom) { 325 | this.pageObj.selectedNum = num; 326 | if (this.pageObj.proximityFeatures) { 327 | var gra = this.pageObj.proximityFeatures[num]; 328 | this.emit('highlight', { 329 | data : gra 330 | }); 331 | if (zoom) 332 | this._zoomToLocation(gra); 333 | var rec = dom.byId("rec_" + this.pageObj.id + "_" + num); 334 | if (rec) { 335 | domClass.add(rec, "recOpened"); 336 | var recB = dom.byId("recBody_" + this.pageObj.id + "_" + num); 337 | var recDetails = domConstruct.create("div", { 338 | id: "recDetails" 339 | }, recB); 340 | domClass.add(recDetails, "recDetails"); 341 | var cp = new ContentPane({ 342 | id: "recPane" 343 | }); 344 | cp.placeAt('recDetails', 'last'); 345 | cp.startup(); 346 | var content = gra.getContent(); 347 | registry.byId("recPane").set("content", content); 348 | if (!zoom) { 349 | setTimeout(lang.hitch(this, this._updatePosition), 300); 350 | } 351 | } 352 | } 353 | }, 354 | 355 | // Select Route 356 | _selectRoute : function(num, evt) { 357 | event.stop(evt); 358 | this._showRoute(num); 359 | }, 360 | 361 | // Show Route 362 | _showRoute : function(num) { 363 | this._unselectRecords(); 364 | this._highlightRecord(num, true); 365 | var gra = this.pageObj.proximityFeatures[num]; 366 | this._routeToLocation(gra.attributes.POINT_LOCATION); 367 | }, 368 | 369 | // Unselect Records 370 | _unselectRecords : function() { 371 | if (registry.byId("recPane")) 372 | registry.byId("recPane").destroy(); 373 | domConstruct.destroy("recDetails"); 374 | query(".recOpened").forEach(function(node) { 375 | domClass.remove(node, "recOpened"); 376 | }); 377 | }, 378 | 379 | // Update Position 380 | _updatePosition : function() { 381 | var num = this.pageObj.selectedNum; 382 | var pos = num * 60; 383 | this.container.scrollTop = pos; 384 | }, 385 | 386 | // Update Selection 387 | updateSelection : function() { 388 | this._unselectRecords(); 389 | if (this.pageObj && this.pageObj.selectedNum >= 0) { 390 | var num = this.pageObj.selectedNum; 391 | this._unselectRecords(); 392 | this._highlightRecord(num, false); 393 | } 394 | 395 | }, 396 | 397 | // Clear Selection 398 | clearSelection : function() { 399 | this.pageObj.selectedNum = null; 400 | this._unselectRecords(); 401 | } 402 | 403 | }); 404 | 405 | return proximityInfo; 406 | 407 | }); -------------------------------------------------------------------------------- /js/SearchSources.js: -------------------------------------------------------------------------------- 1 | define(["dojo/_base/declare", "dojo/_base/lang", "dojo/_base/array", "dojo/_base/json", "dojo/dom-construct", "esri/lang", "esri/tasks/locator", "esri/layers/FeatureLayer", "esri/dijit/Search"], function ( 2 | declare, lang, array, dojoJson, domConstruct, esriLang, Locator, FeatureLayer, Search) { 3 | return declare(null, { 4 | 5 | constructor: function (parameters) { 6 | 7 | var defaults = { 8 | sources: [], 9 | map: null, 10 | //the map 11 | useMapExtent: false, 12 | //When true we restrict world locator to the map extent 13 | geocoders: [], 14 | esriSource: null, 15 | //Geocoders defined in helper services 16 | itemData: null, 17 | //web map item info includes operational layers and info about searches configured on web map 18 | configuredSearchLayers: [] 19 | }; 20 | 21 | lang.mixin(this, defaults, parameters); 22 | }, 23 | 24 | /* Public Methods */ 25 | 26 | createOptions: function () { 27 | return { 28 | map: this.map, 29 | sources: this._createSources(), 30 | activeSourceIndex: this._getActiveSource() 31 | }; 32 | }, 33 | 34 | /* Private Methods */ 35 | 36 | //optional array of additional search layers to configure from the application config process 37 | _createSources: function () { 38 | if (this.applicationConfiguredSources) { 39 | this._createAppConfigSources(); 40 | } else { 41 | //Create services from org helper services 42 | //Create locators defined in web map item 43 | //Create configured services. 44 | this._createHelperServiceSources(); 45 | if (this.itemData) { 46 | this._createWebMapItemSources(); 47 | } 48 | if (this.configuredSearchLayers.length > 0) { 49 | this._createConfiguredSources(); 50 | } 51 | } 52 | 53 | return this.sources; 54 | }, 55 | 56 | _getActiveSource: function () { 57 | var activeIndex = 0; 58 | if (this.sources && this.sources.length > 1) { 59 | activeIndex = "all"; 60 | } 61 | array.some(this.sources, function (s, index) { 62 | if (!s.hasEsri && s.featureLayer) { 63 | activeIndex = index; 64 | return true; 65 | } 66 | }); 67 | return activeIndex; 68 | }, 69 | _createHelperServiceSources: function () { 70 | var geocoders = lang.clone(this.geocoders); 71 | array.forEach(geocoders, lang.hitch(this, function (geocoder) { 72 | if (geocoder.url.indexOf(".arcgis.com/arcgis/rest/services/World/GeocodeServer") > -1) { 73 | var s = new Search(); 74 | var esriSource = s.defaultSource; 75 | esriSource.hasEsri = true; 76 | //Some orgs have the Esri world locator added with 77 | //a custom name defined. Use that name. 78 | if (geocoder.name) { 79 | esriSource.name = geocoder.name; 80 | } 81 | //Restrict search to custom extent if defined 82 | if (this.useMapExtent) { 83 | esriSource.searchExtent = this.map.extent; 84 | } 85 | this.sources.push(esriSource); 86 | s.destroy(); 87 | } else if (esriLang.isDefined(geocoder.singleLineFieldName)) { 88 | geocoder.locator = new Locator(geocoder.url); 89 | this.sources.push(geocoder); 90 | } 91 | })); 92 | }, 93 | 94 | _createWebMapItemSources: function () { 95 | if (this.itemData && this.itemData.applicationProperties && this.itemData.applicationProperties.viewing && this.itemData.applicationProperties.viewing.search) { 96 | //search is configured on the web map item 97 | var searchOptions = this.itemData.applicationProperties.viewing.search; 98 | array.forEach(searchOptions.layers, lang.hitch(this, function (searchLayer) { 99 | //get the title specified in the item 100 | var operationalLayers = this.itemData.operationalLayers, 101 | layer = null; 102 | array.some(operationalLayers, function (opLayer) { 103 | if (opLayer.id === searchLayer.id) { 104 | layer = opLayer; 105 | return true; 106 | } 107 | }); 108 | if (layer && layer.hasOwnProperty("url")) { 109 | var source = {}, 110 | url = layer.url, 111 | name = layer.title || layer.name; 112 | if (esriLang.isDefined(searchLayer.subLayer)) { 113 | url = url + "/" + searchLayer.subLayer; 114 | array.some(layer.layerObject.layerInfos, function (info) { 115 | if (info.id === searchLayer.subLayer) { 116 | name += " - " + layer.layerObject.layerInfos[searchLayer.subLayer].name; 117 | return true; 118 | } 119 | }); 120 | } 121 | //Get existing layer or create new one 122 | var mapLayer = this.map.getLayer(layer.id); 123 | if (mapLayer && (mapLayer.type === "Feature Layer"|| mapLayer.type === "FeatureLayer")) { 124 | source.featureLayer = mapLayer; 125 | } else { 126 | source.featureLayer = new FeatureLayer(url,{ 127 | outFields: ["*"] 128 | }); 129 | } 130 | source.name = name; 131 | source.exactMatch = searchLayer.field.exactMatch; 132 | source.searchFields = [searchLayer.field.name]; 133 | source.displayField = searchLayer.field.name; 134 | source.outFields = ["*"]; 135 | source.placeholder = searchOptions.hintText; 136 | this.sources.push(source); 137 | } 138 | })); 139 | } 140 | }, 141 | _createAppConfigSources: function () { 142 | // Configured via the new Search Configuation widget 143 | var configSource = lang.clone(this.applicationConfiguredSources); 144 | array.forEach(configSource, lang.hitch(this, function (source) { 145 | if (source.locator) { 146 | source.locator = new Locator(source.url); 147 | } else { //feature layer 148 | var featureLayer = null; 149 | if (source.flayerId) { 150 | featureLayer = this.map.getLayer(source.flayerId); 151 | } 152 | if (!featureLayer && source.url) { 153 | featureLayer = new FeatureLayer(source.url, { 154 | outFields: ["*"] 155 | }); 156 | } 157 | source.featureLayer = featureLayer; 158 | } 159 | if (source.searchWithinMap) { 160 | source.searchExtent = this.map.extent; 161 | } 162 | this.sources.push(source); 163 | })); 164 | 165 | }, 166 | _createConfiguredSources: function () { 167 | // Old configuration using layer/field picker 168 | array.forEach(this.configuredSearchLayers, lang.hitch(this, function (layer) { 169 | var mapLayer = this.map.getLayer(layer.id); 170 | if (mapLayer) { 171 | var source = {}; 172 | source.featureLayer = mapLayer; 173 | if (layer.fields && layer.fields.length && layer.fields.length > 0) { 174 | source.searchFields = layer.fields; 175 | source.displayField = layer.fields[0]; 176 | source.outFields = ["*"]; 177 | this.sources.push(source); 178 | } 179 | } 180 | })); 181 | } 182 | 183 | }); 184 | }); -------------------------------------------------------------------------------- /js/WeatherInfo.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'dojo/_base/declare', 3 | 'dojo/_base/lang', 4 | 'dojo/Deferred', 5 | 'dojo/dom-class', 6 | 'dojo/dom-construct', 7 | 'esri/geometry/webMercatorUtils', 8 | 'esri/request', 9 | 'esri/SpatialReference', 10 | 'esri/tasks/GeometryService', 11 | 'esri/tasks/ProjectParameters' 12 | ],function( 13 | declare, 14 | lang, 15 | Deferred, 16 | domClass, 17 | domConstruct, 18 | webMercatorUtils, 19 | esriRequest, 20 | SpatialReference, 21 | GeometryService, 22 | ProjectParameters 23 | ){ 24 | 25 | var weatherInfo = declare('WeatherInfo', null, { 26 | 27 | config : null, 28 | location : null, 29 | buffer : null, 30 | container : null, 31 | 32 | // ** 33 | 34 | weatherData : { 35 | 119:["Cloudy","cloudy5.png","cloudy5.png"], 36 | 377:["Moderate or heavy showers of ice pellets","hail.png","hail.png"], 37 | 374:["Light showers of ice pellets","hail.png","hail.png"], 38 | 350:["Ice pellets","hail.png","hail.png"], 39 | 353:["Light rain shower","light_rain.png","light_rain.png"], 40 | 302:["Moderate rain","light_rain.png","light_rain.png"], 41 | 296:["Light rain","light_rain.png","light_rain.png"], 42 | 293:["Patchy light rain","light_rain.png","light_rain.png"], 43 | 266:["Light drizzle","light_rain.png","light_rain.png"], 44 | 263:["Patchy light drizzle","light_rain.png","light_rain.png"], 45 | 122:["Overcast","overcast.png","overcast.png"], 46 | 359:["Torrential rain shower","shower3.png","shower3.png"], 47 | 308:["Heavy rain","shower3.png","shower3.png"], 48 | 365:["Moderate or heavy sleet showers","sleet.png","sleet.png"], 49 | 362:["Light sleet showers","sleet.png","sleet.png"], 50 | 320:["Moderate or heavy sleet","sleet.png","sleet.png"], 51 | 317:["Light sleet","sleet.png","sleet.png"], 52 | 314:["Moderate or Heavy freezing rain","sleet.png","sleet.png"], 53 | 311:["Light freezing rain","sleet.png","sleet.png"], 54 | 284:["Heavy freezing drizzle","sleet.png","sleet.png"], 55 | 281:["Freezing drizzle","sleet.png","sleet.png"], 56 | 185:["Patchy freezing drizzle nearby","sleet.png","sleet.png"], 57 | 182:["Patchy sleet nearby","sleet.png","sleet.png"], 58 | 395:["Moderate or heavy snow in area with thunder","snow4.png","snow4.png"], 59 | 335:["Patchy heavy snow","snow4.png","snow4.png"], 60 | 230:["Blizzard","snow4.png","snow4.png"], 61 | 227:["Blowing snow","snow4.png","snow4.png"], 62 | 371:["Moderate or heavy snow showers","snow5.png","snow5.png"], 63 | 338:["Heavy snow","snow5.png","snow5.png"], 64 | 389:["Moderate or heavy rain in area with thunder","tstorm3.png","tstorm3.png"], 65 | 392:["Patchy light snow in area with thunder","snow2.png","snow2_night.png"], 66 | 386:["Patchy light rain in area with thunder","tstorm1.png","tstorm1_night.png"], 67 | 368:["Light snow showers","snow2.png","snow2_night.png"], 68 | 356:["Moderate or heavy rain shower","shower2.png","shower2_night.png"], 69 | 332:["Moderate snow","snow3.png","snow3_night.png"], 70 | 329:["Patchy moderate snow","snow2.png","snow2_night.png"], 71 | 326:["Light snow","snow1.png","snow1_night.png"], 72 | 323:["Patchy light snow","snow1.png","snow1_night.png"], 73 | 305:["Heavy rain at times","shower2.png","shower2_night.png"], 74 | 299:["Moderate rain at times","shower2.png","shower2_night.png"], 75 | 260:["Freezing fog","fog.png","fog_night.png"], 76 | 248:["Fog","fog.png","fog_night.png"], 77 | 200:["Thundery outbreaks in nearby","tstorm1.png","tstorm1_night.png"], 78 | 179:["Patchy snow nearby","snow1.png","snow1_night.png"], 79 | 176:["Patchy rain nearby","shower1.png","shower1_night.png"], 80 | 143:["Mist","mist.png","mist_night.png"], 81 | 116:["Partly Cloudy","cloudy3.png","cloudy3_night.png"], 82 | 113:["Clear/Sunny", "sunny.png", "sunny_night.png"] 83 | }, 84 | 85 | // ** 86 | 87 | constructor: function(config) { 88 | this.config = config; 89 | }, 90 | 91 | // update for location 92 | updateForLocation: function(location, container) { 93 | this.location = location; 94 | this.container = container; 95 | this.container.innerHTML = "

"; 96 | 97 | //var pt = webMercatorUtils.webMercatorToGeographic(location); 98 | //var coords = pt.y + "," + pt.x; 99 | var def = this._getLatLong(location); 100 | def.then(lang.hitch(this, function(coords) { 101 | var requestURL = this.config.weatherURL + "&q=" + coords; 102 | 103 | var weatherDeferred = esriRequest({ 104 | url: requestURL, 105 | callbackParamName: "callback" 106 | }, { 107 | useProxy: false 108 | }); 109 | weatherDeferred.then( 110 | lang.hitch(this, function(response){ 111 | this._resultsHandler(response); 112 | }), 113 | lang.hitch(this, function(error){ 114 | this._errorHandler(error); 115 | })); 116 | })); 117 | }, 118 | 119 | // get lat long 120 | _getLatLong: function(location) { 121 | var def = new Deferred(); 122 | var pt; 123 | var sr = location.spatialReference; 124 | if (sr.isWebMercator()) { 125 | pt = webMercatorUtils.webMercatorToGeographic(location); 126 | def.resolve(pt.y + "," + pt.x); 127 | } else if (sr.wkid === 4326) { 128 | pt = location; 129 | def.resolve(pt.y + "," + pt.x); 130 | } else { 131 | var params = new ProjectParameters(); 132 | params.geometries = [location]; 133 | params.outSR = new SpatialReference(4326); 134 | //console.log(this.config.helperServices.geometry); 135 | var gsvc = new GeometryService(this.config.helperServices.geometry); 136 | gsvc.project(params, function(results){ 137 | console.log(results); 138 | var pt = results[0]; 139 | def.resolve(pt.y + "," + pt.x); 140 | }, function(error) { 141 | console.log(error); 142 | }); 143 | } 144 | return def; 145 | }, 146 | 147 | // results handler 148 | _resultsHandler: function(results) { 149 | console.log(results); 150 | this.container.innerHTML = ""; 151 | 152 | var content = domConstruct.create("div", { 153 | //class: "resultsContent" 154 | }, this.container); 155 | domClass.add(content, 'resutsContent'); 156 | 157 | var data = results.data; 158 | var current = data.current_condition; 159 | var weather = data.weather; 160 | var timeInfo = 1; 161 | 162 | // current 163 | if (current.length > 0) { 164 | var cur = current[0]; 165 | 166 | // time info 167 | var obs = cur.localObsDateTime.split(" "); 168 | var ampm = obs[2]; 169 | var hrArray = obs[1].split(":"); 170 | var hr = parseInt(hrArray[0]); 171 | if (ampm == "AM") { 172 | if ((hr < 6) || (hr == 12)) 173 | timeInfo = 2; 174 | } else { 175 | if ((hr > 6) && (hr < 12)) 176 | timeInfo = 2; 177 | } 178 | 179 | // current 180 | var temp = cur["temp_"+this.config.weatherUnits]; 181 | var code = cur.weatherCode; 182 | var w = this.weatherData[parseInt(code)]; 183 | var rec = domConstruct.create("div", { 184 | //class: "recWeather" 185 | }, content); 186 | domClass.add(rec, 'recWeather'); 187 | var nowStr = "now"; 188 | if (this.config && this.config.i18n) { 189 | nowStr = this.config.i18n.days[nowStr]; 190 | } 191 | var recLeft = domConstruct.create("div", { 192 | //class: "recLeft", 193 | innerHTML: nowStr.toUpperCase() + "
" + temp + "°" 194 | }, rec); 195 | domClass.add(recLeft, 'recLeft'); 196 | var recRight = domConstruct.create("div", { 197 | //class: "recRight", 198 | innerHTML: "" 199 | }, rec); 200 | domClass.add(recRight, 'recRight'); 201 | 202 | 203 | } 204 | 205 | // forecast 206 | for (var i=0; i" + tempMax + "° - " + tempMin + "°" 223 | }, rec); 224 | domClass.add(recLeft, 'recLeft'); 225 | var recRight = domConstruct.create("div", { 226 | //class: "recRight", 227 | innerHTML: "" 228 | }, rec); 229 | domClass.add(recRight, 'recRight'); 230 | } 231 | 232 | // credits 233 | var txt = '
Powered by
' + 234 | '' + 236 | 'Dark Sky
'; 237 | domConstruct.create("div", { 238 | innerHTML: txt 239 | }, content); 240 | 241 | 242 | }, 243 | 244 | // error handler 245 | _errorHandler: function(error) { 246 | this.container.innerHTML = ""; 247 | domConstruct.create("div", { 248 | innerHTML: error.message 249 | }, this.container); 250 | }, 251 | 252 | // get day 253 | _getDay: function(dateString) { 254 | var array = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]; 255 | var dtArray = dateString.split("-"); 256 | var d = new Date(dtArray[0], dtArray[1]-1, dtArray[2]); 257 | var day = array[d.getDay()]; 258 | if (this.config && this.config.i18n) { 259 | return this.config.i18n.days[day]; 260 | } 261 | return day; 262 | } 263 | 264 | }); 265 | 266 | return weatherInfo; 267 | 268 | }); -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | /*global define,document */ 2 | /*jslint sloppy:true,nomen:true */ 3 | /* 4 | | Copyright 2014 Esri 5 | | 6 | | Licensed under the Apache License, Version 2.0 (the "License"); 7 | | you may not use this file except in compliance with the License. 8 | | You may obtain a copy of the License at 9 | | 10 | | http://www.apache.org/licenses/LICENSE-2.0 11 | | 12 | | Unless required by applicable law or agreed to in writing, software 13 | | distributed under the License is distributed on an "AS IS" BASIS, 14 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | | See the License for the specific language governing permissions and 16 | | limitations under the License. 17 | */ 18 | define([ 19 | "dojo/ready", 20 | "dojo/_base/array", 21 | "dojo/_base/Color", 22 | "dojo/_base/declare", 23 | "dojo/_base/lang", 24 | "dojo/dom", 25 | "dojo/dom-class", 26 | "dojo/on", 27 | "dojo/query", 28 | "application/ui", 29 | "esri/arcgis/utils", 30 | "esri/dijit/Geocoder", 31 | "esri/dijit/LocateButton", 32 | "esri/dijit/Popup", 33 | "esri/dijit/Search", 34 | "esri/lang", 35 | "esri/symbols/SimpleMarkerSymbol", 36 | "esri/urlUtils", 37 | "application/SearchSources" 38 | ], function( 39 | ready, 40 | array, 41 | Color, 42 | declare, 43 | lang, 44 | dom, 45 | domClass, 46 | on, 47 | query, 48 | UI, 49 | arcgisUtils, 50 | Geocoder, 51 | LocateButton, 52 | Popup, 53 | Search, 54 | esriLang, 55 | SimpleMarkerSymbol, 56 | urlUtils, 57 | SearchSources 58 | ) { 59 | 60 | return declare(null, { 61 | 62 | config: {}, 63 | 64 | map: null, 65 | 66 | initExt: null, 67 | 68 | opLayers: [], 69 | 70 | mapExt: null, 71 | 72 | ui: null, 73 | 74 | // Startup 75 | startup: function(config) { 76 | // config will contain application and user defined info for the template such as i18n strings, the web map id 77 | // and application id 78 | // any url parameters and any application specific configuration information. 79 | if (config) { 80 | this.config = config; 81 | //console.log(config); 82 | this._setColor(); 83 | this._setProtocolHandler(); 84 | // proxy rules 85 | // urlUtils.addProxyRule({ 86 | // urlPrefix: "route.arcgis.com", 87 | // proxyUrl: this.config.proxyurl 88 | // }); 89 | // urlUtils.addProxyRule({ 90 | // urlPrefix: "traffic.arcgis.com", 91 | // proxyUrl: this.config.proxyurl 92 | // }); 93 | // // TO DO: check proxy url 94 | // console.log("HELPER SERVICES", this.config.helperServices); 95 | // console.log("LAYER MIXINS", this.config.layerMixins); 96 | // if (this.config.helperServices.route && this.config.helperServices.route.url) { 97 | // var routeUrl = null; 98 | // array.some(this.config.layerMixins, lang.hitch(this, function(layerMixin) { 99 | // if (layerMixin.url === this.config.helperServices.route.url) { 100 | // //routeUrl = layerMixin.mixin.url; 101 | // routeUrl = this._fixProxyUrl(layerMixin); 102 | // return true; 103 | // } 104 | // })); 105 | // urlUtils.addProxyRule({ 106 | // urlPrefix: routeUrl || this.config.helperServices.route.url, 107 | // proxyUrl: this.config.proxyurl 108 | // }); 109 | // } 110 | // document ready 111 | ready(lang.hitch(this, function() { 112 | //supply either the webmap id or, if available, the item info 113 | var itemInfo = this.config.itemInfo || this.config.webmap; 114 | //If a custom extent is set as a url parameter handle that before creating the map 115 | if (this.config.extent) { 116 | var extArray = decodeURIComponent(this.config.extent).split(","); 117 | if (extArray.length === 4) { 118 | itemInfo.item.extent = [ 119 | [parseFloat(extArray[0]), parseFloat(extArray[1])], 120 | [parseFloat(extArray[2]), parseFloat(extArray[3])] 121 | ]; 122 | } 123 | } 124 | this._createWebMap(itemInfo); 125 | 126 | })); 127 | } else { 128 | var error = new Error("Main:: Config is not defined"); 129 | this.reportError(error); 130 | } 131 | }, 132 | 133 | // Report error 134 | reportError: function(error) { 135 | // remove loading class from body 136 | domClass.remove(document.body, "app-loading"); 137 | domClass.add(document.body, "app-error"); 138 | // an error occurred - notify the user. In this example we pull the string from the 139 | // resource.js file located in the nls folder because we've set the application up 140 | // for localization. If you don't need to support multiple languages you can hardcode the 141 | // strings here and comment out the call in index.html to get the localization strings. 142 | // set message 143 | var node = dom.byId("loading_message"); 144 | if (node) { 145 | if (this.config && this.config.i18n) { 146 | node.innerHTML = this.config.i18n.map.error + ": " + error.message; 147 | } else { 148 | node.innerHTML = "Unable to create map: " + error.message; 149 | } 150 | } 151 | }, 152 | 153 | // Set Color 154 | _setColor: function() { 155 | if (this.config.cycleColors === true) { 156 | this.config.color = this.config.colors[0]; 157 | } 158 | }, 159 | 160 | // set protocol handler 161 | _setProtocolHandler: function() { 162 | esri.id.setProtocolErrorHandler(function() { 163 | console.log("protocol"); 164 | if (window.confirm("Your browser is not CORS enabled. You need to redirect to HTTPS. Continue?")) { 165 | window.location = window.location.href.replace("http:", "https:"); 166 | } 167 | }); 168 | }, 169 | 170 | // Create web map based on the input web map id 171 | _createWebMap: function(itemInfo) { 172 | // popup 173 | var popupSym = new SimpleMarkerSymbol("circle", 2, null, new Color.fromArray([0, 0, 0, 0.1])); 174 | var popup = new Popup({ 175 | markerSymbol: popupSym, 176 | anchor: "top" 177 | }, dom.byId("panelPopup")); 178 | 179 | // set extent from config/url 180 | itemInfo = this._setExtent(itemInfo); 181 | // Optionally define additional map config here for example you can 182 | // turn the slider off, display info windows, disable wraparound 180, slider position and more. 183 | var mapOptions = {}; 184 | // set zoom level from config/url 185 | mapOptions = this._setLevel(mapOptions); 186 | // set map center from config/url 187 | mapOptions = this._setCenter(mapOptions); 188 | 189 | // create webmap from item 190 | mapOptions.infoWindow = popup; 191 | 192 | arcgisUtils.createMap(itemInfo, "mapDiv", { 193 | mapOptions: mapOptions, 194 | usePopupManager: true, 195 | layerMixins: this.config.layerMixins || [], 196 | editable: false, 197 | bingMapsKey: this.config.bingKey 198 | }).then(lang.hitch(this, function(response) { 199 | 200 | this.config.response = response; 201 | this.map = response.map; 202 | this.initExt = this.map.extent; 203 | this.config.opLayers = response.itemInfo.itemData.operationalLayers; 204 | 205 | this._createMapUI(); 206 | // make sure map is loaded 207 | if (this.map.loaded) { 208 | // do something with the map 209 | this._mapLoaded(); 210 | } else { 211 | on.once(this.map, "load", lang.hitch(this, function() { 212 | // do something with the map 213 | this._mapLoaded(); 214 | })); 215 | } 216 | }), this.reportError); 217 | }, 218 | 219 | // Map Loaded - Map is ready 220 | _mapLoaded: function() { 221 | query(".esriSimpleSlider").style("backgroundColor", this.config.color.toString()); 222 | // remove loading class from body 223 | domClass.remove(document.body, "app-loading"); 224 | }, 225 | 226 | // Create Geocoder Options 227 | _createGeocoderOptions: function() { 228 | var hasEsri = false; 229 | var geocoders = lang.clone(this.config.helperServices.geocode); 230 | array.forEach(geocoders, lang.hitch(this, function(geocoder) { 231 | if (geocoder.url.indexOf(".arcgis.com/arcgis/rest/services/World/GeocodeServer") > -1) { 232 | hasEsri = true; 233 | geocoder.name = "Esri World Geocoder"; 234 | geocoder.outFields = "Match_addr, stAddr, City"; 235 | geocoder.singleLineFieldName = "SingleLine"; 236 | geocoder.esri = geocoder.placefinding = true; 237 | } 238 | })); 239 | //only use geocoders with a singleLineFieldName 240 | geocoders = array.filter(geocoders, function(geocoder) { 241 | return (esriLang.isDefined(geocoder.singleLineFieldName)); 242 | }); 243 | var esriIdx; 244 | if (hasEsri) { 245 | for (var i = 0; i < geocoders.length; i++) { 246 | if (esriLang.isDefined(geocoders[i].esri) && geocoders[i].esri === true) { 247 | esriIdx = i; 248 | break; 249 | } 250 | } 251 | } 252 | var options = { 253 | map: this.map, 254 | autoNavigate: false, 255 | autoComplete: hasEsri 256 | }; 257 | if (hasEsri && esriIdx === 0 && geocoders.length === 1) { // Esri geocoder is primary 258 | options.arcgisGeocoder = true; 259 | } else { // Esri geocoder is not primary 260 | options.arcgisGeocoder = false; 261 | options.geocoders = geocoders; 262 | } 263 | return options; 264 | }, 265 | 266 | // Create Map UI 267 | _createMapUI: function() { 268 | 269 | // home 270 | // var home = new HomeButton({ 271 | // map : this.map 272 | // }, "btnHome"); 273 | // home.startup(); 274 | 275 | // geolocate 276 | var geoLocate = new LocateButton({ 277 | map: this.map, 278 | autoNavigate: false, 279 | highlightLocation: false 280 | }, "btnLocate"); 281 | on(geoLocate, "locate", lang.hitch(this, this._geoLocated)); 282 | geoLocate.startup(); 283 | 284 | // geocoder 285 | // var geocoderOptions = this._createGeocoderOptions(); 286 | // var geocoder = new Geocoder(geocoderOptions, "panelGeocoder"); 287 | // on(geocoder, "select", lang.hitch(this, this._geocoderSelect)); 288 | // on(geocoder, "clear", lang.hitch(this, this._geocoderClear)); 289 | // geocoder.startup(); 290 | 291 | // search 292 | var searchSources = new SearchSources({ 293 | map: this.map, 294 | useMapExtent: false, 295 | geocoders: this.config.helperServices.geocode, 296 | itemData: this.config.response.itemInfo.itemData 297 | }); 298 | var searchOptions = searchSources.createOptions(); 299 | searchOptions.autoNavigate = false; 300 | this.search = new Search(searchOptions, "panelGeocoder"); 301 | 302 | this.search.on("search-results", lang.hitch(this, function(event) { 303 | console.log("search-results", event); 304 | })); 305 | this.search.on("select-result", lang.hitch(this, this._geocoderSelect)); 306 | this.search.on("clear-search", lang.hitch(this, this._geocoderClear)); 307 | this.search.startup(); 308 | 309 | // map click 310 | on(this.map, "click", lang.hitch(this, this._mapClickHandler)); 311 | 312 | //create ui 313 | this._createUI(); 314 | 315 | // update theme 316 | this._updateTheme(); 317 | 318 | // set default location 319 | if (this.config.defaultToCenter) 320 | this._setDefaultLocation(); 321 | }, 322 | 323 | // geoLocated 324 | _geoLocated: function(evt) { 325 | if (evt.graphic) { 326 | var geom = evt.graphic.geometry; 327 | this.ui.setLocation(geom); 328 | } else { 329 | if (evt.error) 330 | console.log(evt.error.message); 331 | } 332 | }, 333 | 334 | // geocoder select 335 | _geocoderSelect: function(obj) { 336 | var result = obj.result; 337 | var geom = result.feature.geometry; 338 | this.ui.setLocation(geom); 339 | }, 340 | 341 | // geocoder clear 342 | _geocoderClear: function() { 343 | if (this.ui.location) 344 | this.ui.setLocation(null); 345 | }, 346 | 347 | // map click handler 348 | _mapClickHandler: function(event) { 349 | this.ui.setLocation(event.mapPoint); 350 | }, 351 | 352 | // Create UI 353 | _createUI: function() { 354 | if (this.config.title !== "") 355 | document.title = this.config.title; 356 | dom.byId("panelText").innerHTML = this.config.title; 357 | if (this.config.logo !== "") 358 | dom.byId("logo").src = this.config.logo; 359 | this.ui = new UI(this.config); 360 | this.ui.map = this.map; 361 | this.ui.startup(); 362 | }, 363 | 364 | // Update Theme 365 | _updateTheme: function() { 366 | query(".bg").style("backgroundColor", this.config.color.toString()); 367 | query(".esriPopup .titlePane").style("backgroundColor", this.config.color.toString()); 368 | }, 369 | 370 | // set default location 371 | _setDefaultLocation: function() { 372 | var pt = this.map.extent.getCenter(); 373 | this.ui.setLocation(pt); 374 | this.map.resize(); 375 | }, 376 | 377 | _setLevel: function (options) { 378 | var level = this.config.level; 379 | //specify center and zoom if provided as url params 380 | if (level) { 381 | options.zoom = level; 382 | } 383 | return options; 384 | }, 385 | 386 | _setCenter: function (options) { 387 | var center = this.config.center; 388 | if (center) { 389 | var points = center.split(","); 390 | if (points && points.length === 2) { 391 | options.center = [parseFloat(points[0]), parseFloat(points[1])]; 392 | } 393 | } 394 | return options; 395 | }, 396 | 397 | _setExtent: function (info) { 398 | var e = this.config.extent; 399 | //If a custom extent is set as a url parameter handle that before creating the map 400 | if (e) { 401 | var extArray = e.split(","); 402 | var extLength = extArray.length; 403 | if (extLength === 4) { 404 | info.item.extent = [ 405 | [parseFloat(extArray[0]), parseFloat(extArray[1])], 406 | [parseFloat(extArray[2]), parseFloat(extArray[3])] 407 | ]; 408 | } 409 | } 410 | return info; 411 | } 412 | 413 | }); 414 | }); 415 | -------------------------------------------------------------------------------- /js/nls/ar/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "يتعذر إنشاء الخريطة", 20 | "licenseError": { 21 | "message": "حسابك غير مرخص لاستخدام التطبيقات القابلة للتكوين غير العامة. رجاءً اطلب من مسئولي المؤسسة تعيينك كنوع مستخدم يتضمن التطبيقات الأساسية أو ترخيص التطبيقات الأساسية المضافة.", 22 | "title": "غير مرخص" 23 | } 24 | }, 25 | "days": { 26 | "now": "الآن", 27 | "sun": "الأحد", 28 | "mon": "MON", 29 | "tue": "TUE", 30 | "wed": "WED", 31 | "thu": "THU", 32 | "fri": "الجمعة", 33 | "sat": "السبت" 34 | }, 35 | "tooltips": { 36 | "logo": "الشعار", 37 | "menu": "قائمة", 38 | "close": "إغلاق", 39 | "previous": "السابق", 40 | "next": "التالي", 41 | "directions": "الاتجاهات" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/bs/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Nije moguće stvoriti kartu", 20 | "licenseError": { 21 | "message": "Vaš račun nije licenciran za upotrebu konfigurabilnih appova koji nisu javni. Obratite se administratoru svoje organizacije da vam dodijeli vrstu korisnika koja sadrži licencu za osnovne appove ili za dodatke za osnovne appove.", 22 | "title": "Nema licence" 23 | } 24 | }, 25 | "days": { 26 | "now": "SADA", 27 | "sun": "NED", 28 | "mon": "PON", 29 | "tue": "UTO", 30 | "wed": "SRI", 31 | "thu": "ČET", 32 | "fri": "PET", 33 | "sat": "SUB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logotip", 37 | "menu": "Izbornik", 38 | "close": "Zatvori", 39 | "previous": "Prethodno", 40 | "next": "Sljedeće", 41 | "directions": "Upute" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/ca/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "No es pot crear el mapa", 20 | "licenseError": { 21 | "message": "El vostre compte no té llicència per utilitzar aplicacions configurables que no siguin públiques. Demaneu a l'administrador de l'organització que us assigni un tipus d'usuari que inclogui les aplicacions bàsiques o una llicència d'aplicacions bàsiques de complement.", 22 | "title": "Sense llicència" 23 | } 24 | }, 25 | "days": { 26 | "now": "NOW", 27 | "sun": "SUN", 28 | "mon": "MON", 29 | "tue": "TUE", 30 | "wed": "WED", 31 | "thu": "THU", 32 | "fri": "FRI", 33 | "sat": "SAT" 34 | }, 35 | "tooltips": { 36 | "logo": "Logotip", 37 | "menu": "Menú", 38 | "close": "Tanca", 39 | "previous": "Anterior", 40 | "next": "Següent", 41 | "directions": "Indicacions" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/cs/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Nelze vytvořit mapu", 20 | "licenseError": { 21 | "message": "Váš účet nevlastní licenci k používání konfigurovatelných aplikací, které nejsou veřejné. Požádejte prosím správce své organizace, aby vám přidělil typ uživatele, jehož součástí jsou základní aplikace nebo doplňková licence základních aplikací.", 22 | "title": "Chybí licence" 23 | } 24 | }, 25 | "days": { 26 | "now": "NYNÍ", 27 | "sun": "NE", 28 | "mon": "PO", 29 | "tue": "ÚT", 30 | "wed": "ST", 31 | "thu": "ČT", 32 | "fri": "PÁ", 33 | "sat": "SO" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Nabídka", 38 | "close": "Zavřít", 39 | "previous": "Předchozí", 40 | "next": "Další", 41 | "directions": "Navigace" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/da/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Kan ikke oprette kort", 20 | "licenseError": { 21 | "message": "Din konto har ikke licens til at bruge Konfigurérbare apps, der ikke er offentlige. Bed din organisationsadministrator om at knytte dig til en brugertype, der omfatter Essential Apps eller en add-on Essential Apps-licens.", 22 | "title": "Ikke licenseret" 23 | } 24 | }, 25 | "days": { 26 | "now": "NU", 27 | "sun": "SØN", 28 | "mon": "MAN", 29 | "tue": "TIR", 30 | "wed": "ONS", 31 | "thu": "TOR", 32 | "fri": "FRE", 33 | "sat": "LØR" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Luk", 39 | "previous": "Forrige", 40 | "next": "Næste", 41 | "directions": "Vejledninger" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/de/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Karte kann nicht erstellt werden", 20 | "licenseError": { 21 | "message": "Ihr Konto ist nicht für die Verwendung von nicht öffentlichen konfigurierbaren Apps lizenziert. Bitten Sie den Administrator der Organisation, Ihnen einen Benutzertyp mit Essential Apps oder eine Add-On-Lizenz für Essential Apps zuzuweisen.", 22 | "title": "Nicht lizenziert" 23 | } 24 | }, 25 | "days": { 26 | "now": "JETZT", 27 | "sun": "SO", 28 | "mon": "MO", 29 | "tue": "DI", 30 | "wed": "MI", 31 | "thu": "DO", 32 | "fri": "FR", 33 | "sat": "SA" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menü", 38 | "close": "Schließen", 39 | "previous": "Zurück", 40 | "next": "Weiter", 41 | "directions": "Wegbeschreibung" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/el/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Δεν είναι δυνατή η δημιουργία χάρτη", 20 | "licenseError": { 21 | "message": "Ο λογαριασμός σας δεν διαθέτει άδεια χρήσης για Παραμετροποιήσιμες Εφαρμογές που δεν είναι δημόσιες. Ζητήστε από τον διαχειριστή του οργανισμού σας να σας εκχωρήσει τύπο χρήστη που να περιλαμβάνει Βασικές Εφαρμογές ή πρόσθετη άδεια χρήσης για Βασικές Εφαρμογές.", 22 | "title": "Χωρίς άδεια χρήσης" 23 | } 24 | }, 25 | "days": { 26 | "now": "ΤΩΡΑ", 27 | "sun": "ΚΥΡ", 28 | "mon": "ΔΕΥ", 29 | "tue": "ΤΡΙ", 30 | "wed": "ΤΕΤ", 31 | "thu": "ΠΕΜ", 32 | "fri": "ΠΑΡ", 33 | "sat": "ΣΑΒ" 34 | }, 35 | "tooltips": { 36 | "logo": "Λογότυπο", 37 | "menu": "Μενού", 38 | "close": "Κλείσιμο", 39 | "previous": "Προηγούμενο", 40 | "next": "Επόμενο", 41 | "directions": "Οδηγίες" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/es/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "No se puede crear el mapa", 20 | "licenseError": { 21 | "message": "Su cuenta no tiene licencia para utilizar aplicaciones configurables que no son públicas. Pídale al administrador de su organización que le asigne un tipo de usuario que incluya aplicaciones esenciales o una licencia complementaria de aplicaciones esenciales.", 22 | "title": "Sin licencia" 23 | } 24 | }, 25 | "days": { 26 | "now": "AHORA", 27 | "sun": "DOM", 28 | "mon": "LUN", 29 | "tue": "MAR", 30 | "wed": "MIÉ", 31 | "thu": "JUE", 32 | "fri": "VIE", 33 | "sat": "SÁB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logotipo", 37 | "menu": "Menú", 38 | "close": "Cerrar", 39 | "previous": "Anterior", 40 | "next": "Siguiente", 41 | "directions": "Indicaciones" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/et/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Kaarti ei saa luua", 20 | "licenseError": { 21 | "message": "Teie kontol puudub litsents konfigureeritavate rakenduste kasutamiseks, mis ei ole avalikud. Paluge oma organisatsiooni administraatoril määrata teile kasutajatüüp, mis sisaldab olulisi rakendusi või oluliste rakenduse lisalitsentsi.", 22 | "title": "Litsents puudub" 23 | } 24 | }, 25 | "days": { 26 | "now": "KOHE", 27 | "sun": "P", 28 | "mon": "E", 29 | "tue": "T", 30 | "wed": "K", 31 | "thu": "N", 32 | "fri": "R", 33 | "sat": "L" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menüü", 38 | "close": "Sulge", 39 | "previous": "Eelmine", 40 | "next": "Järgmine", 41 | "directions": "Teejuhised" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/fi/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Karttaa ei voi luoda", 20 | "licenseError": { 21 | "message": "Tiliäsi ei ole lisensoitu käyttämään muunneltavissa olevia sovelluksia, jotka eivät ole julkisia. Pyydä organisaatiosi pääkäyttäjää määrittämään sinulle käyttäjätyyppi, joka sisältää keskeiset sovellukset tai keskeisten sovellusten lisäosan lisenssin.", 22 | "title": "Ei lisenssiä" 23 | } 24 | }, 25 | "days": { 26 | "now": "NYT", 27 | "sun": "SU", 28 | "mon": "MA", 29 | "tue": "TI", 30 | "wed": "KE", 31 | "thu": "TO", 32 | "fri": "PE", 33 | "sat": "LA" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Valikko", 38 | "close": "Sulje", 39 | "previous": "Edellinen", 40 | "next": "Seuraava", 41 | "directions": "Reitti" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/fr/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Impossible de créer la carte", 20 | "licenseError": { 21 | "message": "La licence de votre compte ne permet pas d’utiliser des applications configurables non publiques. Demandez à l’administrateur de votre organisation de vous attribuer un type d’utilisateur qui inclut une licence Essential Apps ou une licence Essential Apps additionnelle.", 22 | "title": "Pas de licence" 23 | } 24 | }, 25 | "days": { 26 | "now": "MAINTENANT", 27 | "sun": "DIM", 28 | "mon": "LUN", 29 | "tue": "MAR", 30 | "wed": "MER", 31 | "thu": "JEU", 32 | "fri": "VEN", 33 | "sat": "SAM" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Fermer", 39 | "previous": "Précédent", 40 | "next": "Suivant", 41 | "directions": "Feuille de route" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/he/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "לא ניתן ליצור מפה", 20 | "licenseError": { 21 | "message": "החשבון שלך אינו מורשה להשתמש באפליקציות הניתנות להגדרה שאינן ציבוריות. בקש ממנהל המערכת בארגון שלך להקצות לך סוג משתמש שכולל את Essential Apps או רישיון הרחבה ל-Essential Apps.", 22 | "title": "ללא רישיון" 23 | } 24 | }, 25 | "days": { 26 | "now": "עכשיו", 27 | "sun": "א'", 28 | "mon": "ב'", 29 | "tue": "ג'", 30 | "wed": "ד'", 31 | "thu": "ה'", 32 | "fri": "ו'", 33 | "sat": "שבת" 34 | }, 35 | "tooltips": { 36 | "logo": "סמל", 37 | "menu": "תפריט", 38 | "close": "סגור", 39 | "previous": "הקודם", 40 | "next": "הבא", 41 | "directions": "הוראות נסיעה" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/hr/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Nije moguće stvoriti kartu", 20 | "licenseError": { 21 | "message": "Vaš račun nije licenciran za upotrebu konfigurabilnih appova koji nisu javni. Obratite se administratoru svoje organizacije da vam dodijeli vrstu korisnika koja sadrži licencu za osnovne appove ili za dodatke za osnovne appove.", 22 | "title": "Nema licence" 23 | } 24 | }, 25 | "days": { 26 | "now": "SADA", 27 | "sun": "NED", 28 | "mon": "PON", 29 | "tue": "UTO", 30 | "wed": "SRI", 31 | "thu": "ČET", 32 | "fri": "PET", 33 | "sat": "SUB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logotip", 37 | "menu": "Izbornik", 38 | "close": "Zatvori", 39 | "previous": "Prethodno", 40 | "next": "Sljedeće", 41 | "directions": "Upute" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/hu/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Nem sikerült létrehozni a térképet", 20 | "licenseError": { 21 | "message": "Az Ön fiókjának licence nem terjed ki a nem nyilvános konfigurálható alkalmazásokra. Igényelje a szervezete adminisztrátorától, hogy rendeljen Önhöz olyan felhasználótípust, amely tartalmazza az alapvető alkalmazásokat, vagy egy kiegészítő alapvető alkalmazásokra vonatkozó licencet.", 22 | "title": "Nincs licence" 23 | } 24 | }, 25 | "days": { 26 | "now": "MOST", 27 | "sun": "V", 28 | "mon": "H", 29 | "tue": "K", 30 | "wed": "SZE", 31 | "thu": "CS", 32 | "fri": "P", 33 | "sat": "SZO" 34 | }, 35 | "tooltips": { 36 | "logo": "Logó", 37 | "menu": "Menü", 38 | "close": "Bezárás", 39 | "previous": "Előző", 40 | "next": "Következő", 41 | "directions": "Útvonalterv" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/id/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Tidak dapat membuat peta", 20 | "licenseError": { 21 | "message": "Akun Anda tidak dilisensikan untuk menggunakan Aplikasi yang Dapat Dikonfigurasi yang bukan bersifat publik. Harap minta administrator organisasi Anda untuk menetapkan Anda jenis pengguna yang menyertakan lisensi Essential App atau add-on Essential App.", 22 | "title": "Tidak Dilisensikan" 23 | } 24 | }, 25 | "days": { 26 | "now": "SEKARANG", 27 | "sun": "MIN", 28 | "mon": "SEN", 29 | "tue": "SEL", 30 | "wed": "RAB", 31 | "thu": "KAM", 32 | "fri": "JUM", 33 | "sat": "SAB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Tutup", 39 | "previous": "Sebelumnya", 40 | "next": "Berikutnya", 41 | "directions": "Petunjuk arah" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/it/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Impossibile creare la mappa", 20 | "licenseError": { 21 | "message": "L’account non dispone della licenza per l’uso di app configurabili non pubbliche. È necessario richiedere all’amministratore dell'organizzazione l’assegnazione di un tipo di utente che includa le app essenziali o una licenza aggiuntiva per le app essenziali.", 22 | "title": "Non Licenziato" 23 | } 24 | }, 25 | "days": { 26 | "now": "ORA", 27 | "sun": "DOM", 28 | "mon": "LUN", 29 | "tue": "MAR", 30 | "wed": "MER", 31 | "thu": "GIO", 32 | "fri": "VEN", 33 | "sat": "SAB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Chiudi", 39 | "previous": "Indietro", 40 | "next": "Avanti", 41 | "directions": "Indicazioni" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/ja/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "マップを作成できません", 20 | "licenseError": { 21 | "message": "パブリックでないテンプレートを使用するためのライセンスがアカウントに付与されていません。 組織の管理者に Essential Apps またはアドオン Essential Apps ライセンスを含むユーザー タイプを割り当てるよう依頼してください。", 22 | "title": "ライセンスがありません。" 23 | } 24 | }, 25 | "days": { 26 | "now": "現在", 27 | "sun": "日", 28 | "mon": "月", 29 | "tue": "火", 30 | "wed": "水", 31 | "thu": "木", 32 | "fri": "金", 33 | "sat": "土" 34 | }, 35 | "tooltips": { 36 | "logo": "ロゴ", 37 | "menu": "メニュー", 38 | "close": "閉じる", 39 | "previous": "前へ", 40 | "next": "次へ", 41 | "directions": "方向" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/ko/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "맵을 생성할 수 없음", 20 | "licenseError": { 21 | "message": "귀하의 계정에는 공개 상태가 아닌 구성 설정 앱을 사용할 수 있는 라이선스가 없습니다. 필수 앱 또는 애드온 필수 앱 라이선스가 포함된 사용자 유형을 업무 지시하려면 기관 관리자에게 문의하세요.", 22 | "title": "라이선스가 없음" 23 | } 24 | }, 25 | "days": { 26 | "now": "지금", 27 | "sun": "일", 28 | "mon": "월", 29 | "tue": "화", 30 | "wed": "수", 31 | "thu": "목", 32 | "fri": "금", 33 | "sat": "토" 34 | }, 35 | "tooltips": { 36 | "logo": "로고", 37 | "menu": "메뉴", 38 | "close": "닫기", 39 | "previous": "이전", 40 | "next": "다음", 41 | "directions": "길찾기" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/lt/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Žemėlapio sukurti nepavyko", 20 | "licenseError": { 21 | "message": "Jūsų paskyra nelicencijuota naudoti ne viešas konfigūruojamas aplikacijas. Kreipkitės į organizacijos administratorių, kad paskirtų jums naudotojo tipą, kuris turi svarbiausias aplikacijas, arba suteiktų jums papildomą svarbiausių aplikacijų licenciją.", 22 | "title": "Nelicencijuota" 23 | } 24 | }, 25 | "days": { 26 | "now": "DABAR", 27 | "sun": "SEK", 28 | "mon": "PIR", 29 | "tue": "ANT", 30 | "wed": "TRE", 31 | "thu": "KET", 32 | "fri": "PEN", 33 | "sat": "ŠEŠ" 34 | }, 35 | "tooltips": { 36 | "logo": "Logotipas", 37 | "menu": "Meniu", 38 | "close": "Uždaryti", 39 | "previous": "Ankstesnis", 40 | "next": "Kitas", 41 | "directions": "Kryptys" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/lv/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Nevar izveidot karti", 20 | "licenseError": { 21 | "message": "Jūsu kontam nav licences, lai izmantotu konfigurējamās lietotnes, kas nav publiskas. Pieprasiet savas organizācijas administratoram piešķirt jums lietotāja veidu, kurā iekļauts lietotņu komplekts Essential Apps vai papildinājumlietotņu Essential Apps licence.", 22 | "title": "Nav licences" 23 | } 24 | }, 25 | "days": { 26 | "now": "TŪLĪT", 27 | "sun": "SVĒTD.", 28 | "mon": "PIRMD.", 29 | "tue": "OTRD.", 30 | "wed": "TREŠD.", 31 | "thu": "CETURTD.", 32 | "fri": "PIEKTD.", 33 | "sat": "SESTD." 34 | }, 35 | "tooltips": { 36 | "logo": "Logotips", 37 | "menu": "Izvēlne", 38 | "close": "Aizvērt", 39 | "previous": "Atpakaļ", 40 | "next": "Tālāk", 41 | "directions": "Norādes" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/nb/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Kan ikke opprette kart", 20 | "licenseError": { 21 | "message": "Kontoen din er ikke lisensiert til å bruke konfigurerbare apper som ikke er offentlige. Be administratoren for organisasjonen om å tilordne deg en brukertype som omfatter Essential Apps eller en tilleggslisens for Essential Apps.", 22 | "title": "Ikke lisensiert" 23 | } 24 | }, 25 | "days": { 26 | "now": "NÅ", 27 | "sun": "SØN", 28 | "mon": "MAN", 29 | "tue": "TIR", 30 | "wed": "ONS", 31 | "thu": "TOR", 32 | "fri": "FRE", 33 | "sat": "LØR" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Meny", 38 | "close": "Lukk", 39 | "previous": "Forrige", 40 | "next": "Neste", 41 | "directions": "Beskrivelser" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/nl/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Kan geen kaart creëren", 20 | "licenseError": { 21 | "message": "Uw account heeft geen licentie om configureerbare apps te gebruiken die niet openbaar zijn. Vraag uw organisatiebeheerder om u een gebruikerstype toe te wijzen dat Essential Apps of een add-on Essential Apps-licentie bevat.", 22 | "title": "Geen licentie" 23 | } 24 | }, 25 | "days": { 26 | "now": "NU", 27 | "sun": "ZO", 28 | "mon": "MA", 29 | "tue": "DI", 30 | "wed": "WO", 31 | "thu": "DO", 32 | "fri": "VR", 33 | "sat": "ZA" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Sluiten", 39 | "previous": "Vorige", 40 | "next": "Volgende", 41 | "directions": "Routebeschrijving" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/pl/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Nie można utworzyć mapy", 20 | "licenseError": { 21 | "message": "Twoje konto nie jest licencjonowane do korzystania z aplikacji konfigurowalnych, które nie są publiczne. Poproś administratora instytucji o przypisanie typu użytkownika, który obejmuje licencję na kluczowe aplikacje lub licencję na kluczowe aplikacje dodatkowe.", 22 | "title": "Nie licencjonowano" 23 | } 24 | }, 25 | "days": { 26 | "now": "TERAZ", 27 | "sun": "NIEDZ", 28 | "mon": "PON", 29 | "tue": "WT", 30 | "wed": "ŚR", 31 | "thu": "CZW", 32 | "fri": "PT", 33 | "sat": "SOB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Zamknij", 39 | "previous": "Wstecz", 40 | "next": "Dalej", 41 | "directions": "Wskazówki" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/pt-br/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Não foi possível criar o mapa", 20 | "licenseError": { 21 | "message": "Sua conta não está licenciada para utilizar Aplicativos Configuráveis que não sejam públicos. Solicite ao administrador da sua organização que lhe atribua um tipo de usuário que inclua os Aplicativos Fundamentais ou uma licença complementar dos Aplicativos Fundamentais.", 22 | "title": "Não Licenciado" 23 | } 24 | }, 25 | "days": { 26 | "now": "AGORA", 27 | "sun": "DOM", 28 | "mon": "SEG", 29 | "tue": "TER", 30 | "wed": "QUA", 31 | "thu": "QUI", 32 | "fri": "SEX", 33 | "sat": "SAB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Fechar", 39 | "previous": "Anterior", 40 | "next": "Avançar", 41 | "directions": "Direções" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/pt-pt/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Não foi possível criar mapa", 20 | "licenseError": { 21 | "message": "A sua conta não está licenciada para usar aplicações configuráveis não públicas. Peça ao administrador da sua organização para lhe atribuir um tipo de utilizador que inclua a licença para aplicações essenciais ou aplicações essenciais complementares.", 22 | "title": "Não licenciado" 23 | } 24 | }, 25 | "days": { 26 | "now": "AGORA", 27 | "sun": "DOM", 28 | "mon": "SEG", 29 | "tue": "TER", 30 | "wed": "QUA", 31 | "thu": "QUI", 32 | "fri": "SEX", 33 | "sat": "SÁB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Fechar", 39 | "previous": "Anterior", 40 | "next": "Seguinte", 41 | "directions": "Direções" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | root: ({ 19 | "map" : { 20 | "error" : "Unable to create map", 21 | "licenseError": { 22 | "message": "Your account is not licensed to use Configurable Apps that are not public. Please ask your organization administrator to assign you a user type that includes Essential Apps or an add-on Essential Apps license.", 23 | "title": "Not Licensed" 24 | } 25 | }, 26 | "days" : { 27 | "now" : "NOW", 28 | "sun" : "SUN", 29 | "mon" : "MON", 30 | "tue" : "TUE", 31 | "wed" : "WED", 32 | "thu" : "THU", 33 | "fri" : "FRI", 34 | "sat" : "SAT" 35 | }, 36 | "tooltips" : { 37 | "logo" : "Logo", 38 | "menu" : "Menu", 39 | "close" : "Close", 40 | "previous" : "Previous", 41 | "next" : "Next", 42 | "directions" : "Directions" 43 | } 44 | }), 45 | "ar": 1, 46 | "bs": 1, 47 | "ca": 1, 48 | "cs": 1, 49 | "da": 1, 50 | "de": 1, 51 | "es": 1, 52 | "et": 1, 53 | "fi": 1, 54 | "fr": 1, 55 | "he": 1, 56 | "hr": 1, 57 | "hu": 1, 58 | "id": 1, 59 | "it": 1, 60 | "ja": 1, 61 | "ko": 1, 62 | "lt": 1, 63 | "lv": 1, 64 | "nl": 1, 65 | "nb": 1, 66 | "pl": 1, 67 | "pt-br": 1, 68 | "pt-pt": 1, 69 | "ro": 1, 70 | "ru": 1, 71 | "sl": 1, 72 | "sr": 1, 73 | "sv": 1, 74 | "tr": 1, 75 | "th": 1, 76 | "uk": 1, 77 | "vi": 1, 78 | "zh-cn": 1, 79 | "zh-hk": 1, 80 | "zh-tw": 1 81 | }); 82 | -------------------------------------------------------------------------------- /js/nls/ro/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Nu se poate crea harta", 20 | "licenseError": { 21 | "message": "Contul dvs. nu este licențiat să utilizeze aplicații configurabile care nu sunt publice. Solicitați-i administratorului organizației să vă aloce un tip de utilizator care include aplicații esențiale sau o licență pentru aplicații esențiale de completare.", 22 | "title": "Nelicențiat" 23 | } 24 | }, 25 | "days": { 26 | "now": "ACUM", 27 | "sun": "DUM", 28 | "mon": "LUN", 29 | "tue": "MA", 30 | "wed": "MI", 31 | "thu": "JOI", 32 | "fri": "VIN", 33 | "sat": "SÂM" 34 | }, 35 | "tooltips": { 36 | "logo": "Siglă", 37 | "menu": "Meniu", 38 | "close": "Închidere", 39 | "previous": "Anterior", 40 | "next": "Următor", 41 | "directions": "Indicaţii" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/ru/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Не удалось создать карту", 20 | "licenseError": { 21 | "message": "Ваша учетная запись не лицензирована на использование не публичных Настраиваемых приложений. Обратитесь к администратору организации, чтобы получить тип пользователя, в который входит Essential Apps или лицензия дополнительного модуля Essential Apps.", 22 | "title": "Не лицензировано" 23 | } 24 | }, 25 | "days": { 26 | "now": "Сейчас", 27 | "sun": "ВС", 28 | "mon": "ПН", 29 | "tue": "ВТ", 30 | "wed": "СР", 31 | "thu": "ЧТ", 32 | "fri": "ПТ", 33 | "sat": "СБ" 34 | }, 35 | "tooltips": { 36 | "logo": "Лого", 37 | "menu": "Меню", 38 | "close": "Закрыть", 39 | "previous": "Предыдущий", 40 | "next": "Следующий", 41 | "directions": "Маршруты" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/sl/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Karte ni mogoče ustvariti", 20 | "licenseError": { 21 | "message": "Vaš račun ni licenciran za uporabo konfigurabilnih aplikacij, ki niso javne. Prosite administratorja v vaši organizaciji, da vam dodeli tip uporabnika, ki vsebuje aplikacije Essential Apps ali licenco za dodatne aplikacije Essential Apps.", 22 | "title": "Brez licence" 23 | } 24 | }, 25 | "days": { 26 | "now": "ZDAJ", 27 | "sun": "NED", 28 | "mon": "PON", 29 | "tue": "TOR", 30 | "wed": "SRE", 31 | "thu": "ČET", 32 | "fri": "PET", 33 | "sat": "SOB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logotip", 37 | "menu": "Meni", 38 | "close": "Zapri", 39 | "previous": "Prejšnji", 40 | "next": "Naslednji", 41 | "directions": "Navodila za pot" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/sr/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Kreiranje mape nije moguće", 20 | "licenseError": { 21 | "message": "Vaš nalog nema licencu za korišćenje aplikacija koje mogu da se konfigurišu i nisu javne. Zatražite od administratora organizacije da vam dodeli onaj tip korisnika koji uključuje osnovne aplikacije ili licencu za dodatne osnovne aplikacije.", 22 | "title": "Nema licencu" 23 | } 24 | }, 25 | "days": { 26 | "now": "SADA", 27 | "sun": "NED", 28 | "mon": "PON", 29 | "tue": "UTO", 30 | "wed": "SRE", 31 | "thu": "ČET", 32 | "fri": "PET", 33 | "sat": "SUB" 34 | }, 35 | "tooltips": { 36 | "logo": "Logotip", 37 | "menu": "Meni", 38 | "close": "Zatvori", 39 | "previous": "Prethodno", 40 | "next": "Sledeće", 41 | "directions": "Uputstva" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/sv/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Det går inte att skapa kartan", 20 | "licenseError": { 21 | "message": "Ditt konto har ingen licens för att använda konfigurerbara appar som inte är tillgängliga för allmänheten. Be din organisations administratör att tilldela dig en användartyp som omfattar Essential Apps eller en tilläggslicens för Essential Apps.", 22 | "title": "Inte licensierad" 23 | } 24 | }, 25 | "days": { 26 | "now": "NU", 27 | "sun": "SÖN", 28 | "mon": "MÅN", 29 | "tue": "TIS", 30 | "wed": "ONS", 31 | "thu": "TOR", 32 | "fri": "FRE", 33 | "sat": "LÖR" 34 | }, 35 | "tooltips": { 36 | "logo": "Logotyp", 37 | "menu": "Meny", 38 | "close": "Stäng", 39 | "previous": "Föregående", 40 | "next": "Nästa", 41 | "directions": "Vägbeskrivning" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/th/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "ไม่สามารถสร้างแผนที่ได้", 20 | "licenseError": { 21 | "message": "บัญชีผู้ใช้ของคุณไม่มีใบอนุญาตในการใช้งานแอปที่กำหนดค่าได้ซึ่งไม่ใช่แบบสาธารณะ โปรดขอให้ผู้ดูแลองค์กรของคุณกำหนดประเภทผู้ใช้ที่มีใบอนุญาตแอป Essential หรือแอดออนแอป Essential ให้กับคุณ", 22 | "title": "ไม่มีใบอนุญาต" 23 | } 24 | }, 25 | "days": { 26 | "now": "ขณะนี้", 27 | "sun": "อา.", 28 | "mon": "จ.", 29 | "tue": "อ.", 30 | "wed": "พ.", 31 | "thu": "พฤ.", 32 | "fri": "ศ.", 33 | "sat": "ส." 34 | }, 35 | "tooltips": { 36 | "logo": "โลโก้", 37 | "menu": "เมนู", 38 | "close": "ปิด", 39 | "previous": "ก่อนหน้า", 40 | "next": "ต่อไป", 41 | "directions": "คำสั่ง" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/tr/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Harita oluşturulamıyor", 20 | "licenseError": { 21 | "message": "Hesabınız herkese açık olmayan Yapılandırılabilir Uygulamaları kullanmak için lisanslandırılmamış. Lütfen kuruluş yöneticinizden Temel Uygulamalar veya eklenti Temel Uygulamalar lisansı içeren bir kullanıcı türü atamasını isteyin.", 22 | "title": "Lisanslı Değil" 23 | } 24 | }, 25 | "days": { 26 | "now": "ŞİMDİ", 27 | "sun": "PAZ", 28 | "mon": "PTS", 29 | "tue": "SAL", 30 | "wed": "ÇAR", 31 | "thu": "PER", 32 | "fri": "CUM", 33 | "sat": "CTS" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menü", 38 | "close": "Kapat", 39 | "previous": "Önceki", 40 | "next": "Sonraki", 41 | "directions": "Yol Tarifleri" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/uk/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Неможливо створити карту", 20 | "licenseError": { 21 | "message": "Ваш обліковий запис не має ліцензії на використання настроюваних додатків, які не є публічними Попросіть адміністратора вашої організації призначити вам тип користувача, що включає основні додатки або додаткову ліцензію на основні додатки.", 22 | "title": "Немає ліцензії" 23 | } 24 | }, 25 | "days": { 26 | "now": "ЗАРАЗ", 27 | "sun": "НД", 28 | "mon": "ПН", 29 | "tue": "ВТ", 30 | "wed": "СР", 31 | "thu": "ЧТ", 32 | "fri": "ПТ", 33 | "sat": "СБ" 34 | }, 35 | "tooltips": { 36 | "logo": "Логотип", 37 | "menu": "Меню", 38 | "close": "Закрити", 39 | "previous": "Назад", 40 | "next": "Далі", 41 | "directions": "Напрямки" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/vi/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "Không thể tạo bản đồ", 20 | "licenseError": { 21 | "message": "Tài khoản của bạn không được cấp phép để sử dụng Ứng dụng có thể cấu hình mà không được công khai. Vui lòng yêu cầu quản trị viên của tổ chức bạn gán cho bạn loại người dùng nào có bao gồm các ứng dụng thiết yếu hoặc có giấy phép sử dụng các ứng dụng thiết yếu bổ trợ.", 22 | "title": "Không được cấp phép" 23 | } 24 | }, 25 | "days": { 26 | "now": "BÂY GIỜ", 27 | "sun": "CN", 28 | "mon": "T2", 29 | "tue": "T3", 30 | "wed": "T4", 31 | "thu": "T5", 32 | "fri": "T6", 33 | "sat": "T7" 34 | }, 35 | "tooltips": { 36 | "logo": "Logo", 37 | "menu": "Menu", 38 | "close": "Đóng", 39 | "previous": "Trước", 40 | "next": "Tiếp theo", 41 | "directions": "Chỉ đường" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/zh-cn/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "无法创建地图", 20 | "licenseError": { 21 | "message": "您的帐户无权使用非公共的可配置应用程序。 请联系您的组织管理员为您分配包含基本应用程序或附加基本应用程序许可的用户类型。", 22 | "title": "未经许可" 23 | } 24 | }, 25 | "days": { 26 | "now": "当前", 27 | "sun": "星期日", 28 | "mon": "星期一", 29 | "tue": "星期二", 30 | "wed": "星期三", 31 | "thu": "星期四", 32 | "fri": "星期五", 33 | "sat": "星期六" 34 | }, 35 | "tooltips": { 36 | "logo": "徽标", 37 | "menu": "菜单", 38 | "close": "关闭", 39 | "previous": "上一页", 40 | "next": "下一页", 41 | "directions": "方向" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/zh-hk/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "無法建立地圖", 20 | "licenseError": { 21 | "message": "您的帳號未經授權,無法使用非公開的可配置應用程式。 請聯繫您的組織管理員,請其將包含基礎應用程式或附加元件基礎應用程式授權的使用者類型指派給您。", 22 | "title": "未經許可" 23 | } 24 | }, 25 | "days": { 26 | "now": "目前", 27 | "sun": "星期日", 28 | "mon": "星期一", 29 | "tue": "星期二", 30 | "wed": "星期三", 31 | "thu": "星期四", 32 | "fri": "星期五", 33 | "sat": "星期六" 34 | }, 35 | "tooltips": { 36 | "logo": "標誌", 37 | "menu": "功能表", 38 | "close": "關閉", 39 | "previous": "上一步", 40 | "next": "下一步", 41 | "directions": "方向" 42 | } 43 | }); -------------------------------------------------------------------------------- /js/nls/zh-tw/resources.js: -------------------------------------------------------------------------------- 1 | /*global define */ 2 | /* 3 | | Copyright 2014 Esri 4 | | 5 | | Licensed under the Apache License, Version 2.0 (the "License"); 6 | | you may not use this file except in compliance with the License. 7 | | You may obtain a copy of the License at 8 | | 9 | | http://www.apache.org/licenses/LICENSE-2.0 10 | | 11 | | Unless required by applicable law or agreed to in writing, software 12 | | distributed under the License is distributed on an "AS IS" BASIS, 13 | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | | See the License for the specific language governing permissions and 15 | | limitations under the License. 16 | */ 17 | define({ 18 | "map": { 19 | "error": "無法建立地圖", 20 | "licenseError": { 21 | "message": "您的帳號未經授權,無法使用非公開的可配置應用程式。 請聯繫您的組織管理員,請其將包含基礎應用程式或附加元件基礎應用程式授權的使用者類型指派給您。", 22 | "title": "未經許可" 23 | } 24 | }, 25 | "days": { 26 | "now": "目前", 27 | "sun": "星期日", 28 | "mon": "星期一", 29 | "tue": "星期二", 30 | "wed": "星期三", 31 | "thu": "星期四", 32 | "fri": "星期五", 33 | "sat": "星期六" 34 | }, 35 | "tooltips": { 36 | "logo": "標誌", 37 | "menu": "功能表", 38 | "close": "關閉", 39 | "previous": "上一步", 40 | "next": "下一步", 41 | "directions": "方向" 42 | } 43 | }); -------------------------------------------------------------------------------- /oauth-callback.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /proxy.php: -------------------------------------------------------------------------------- 1 | ? 5 | * [2] http://? (with POST body) 6 | * [3] http://??token=ABCDEFGH 7 | * 8 | * note: [3] is used when fetching tiles from a secured service and the 9 | * JavaScript app sends the token instead of being set in this proxy 10 | * 11 | * REQUIREMENTS 12 | * - cURL extension for PHP must be installed and loaded. To load it, 13 | * add the following lines to your php.ini file: 14 | * extension_dir = "/ext" 15 | * extension = php_curl.dll 16 | * 17 | * - Turn OFF magic quotes for incoming GET/POST data: add/modify the 18 | * following line to your php.ini file: 19 | * magic_quotes_gpc = Off 20 | * 21 | ***************************************************************************/ 22 | 23 | /*************************************************************************** 24 | * to only proxy to the sites listed in '$serverUrls' 25 | * to proxy to any site (are you sure you want to do this?) 26 | */ 27 | $mustMatch = false; 28 | 29 | /*************************************************************************** 30 | * ArcGIS Server services this proxy will forward requests to 31 | * 32 | * 'url' = location of the ArcGIS Server, either specific URL or stem 33 | * 'matchAll' = to forward any request beginning with the URL 34 | * to forward only the request that exactly matches the url 35 | * 'token' = token to include for secured service, if any, otherwise leave it 36 | * empty 37 | */ 38 | $serverUrls = array( 39 | array( 'url' => 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/', 'matchAll' => true, 'token' => '' ), 40 | array( 'url' => 'http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/', 'matchAll' => true, 'token' => '' ), 41 | array( 'url' => 'http://sampleserver1a.arcgisonline.com/arcgisoutput/', 'matchAll' => true, 'token' => '' ), 42 | array( 'url' => 'http://sampleserver1b.arcgisonline.com/arcgisoutput/', 'matchAll' => true, 'token' => '' ), 43 | array( 'url' => 'http://sampleserver1c.arcgisonline.com/arcgisoutput/', 'matchAll' => true, 'token' => '' ), 44 | array( 'url' => 'http://184.72.240.25/', 'matchAll' => true, 'token' => '' ) 45 | ); 46 | /***************************************************************************/ 47 | 48 | function is_url_allowed($allowedServers, $url) { 49 | $isOk = false; 50 | $url = trim($url, "\/"); 51 | for ($i = 0, $len = count($allowedServers); $i < $len; $i++) { 52 | $value = $allowedServers[$i]; 53 | $allowedUrl = trim($value['url'], "\/"); 54 | if ($value['matchAll']) { 55 | if (stripos($url, $allowedUrl) === 0) { 56 | $isOk = $i; // array index that matched 57 | break; 58 | } 59 | } 60 | else { 61 | if ((strcasecmp($url, $allowedUrl) == 0)) { 62 | $isOk = $i; // array index that matched 63 | break; 64 | } 65 | } 66 | } 67 | return $isOk; 68 | } 69 | 70 | // check if the curl extension is loaded 71 | if (!extension_loaded("curl")) { 72 | header('Status: 500', true, 500); 73 | echo 'cURL extension for PHP is not loaded!
Add the following lines to your php.ini file:
extension_dir = "<your-php-install-location>/ext"
extension = php_curl.dll'; 74 | return; 75 | } 76 | 77 | $targetUrl = $_SERVER['QUERY_STRING']; 78 | if (!$targetUrl) { 79 | header('Status: 400', true, 400); // Bad Request 80 | echo 'Target URL is not specified!
Usage:
http://<this-proxy-url>?<target-url>'; 81 | return; 82 | } 83 | 84 | $parts = preg_split("/\?/", $targetUrl); 85 | $targetPath = $parts[0]; 86 | 87 | // check if the request URL matches any of the allowed URLs 88 | if ($mustMatch) { 89 | $pos = is_url_allowed($serverUrls, $targetPath); 90 | if ($pos === false) { 91 | header('Status: 403', true, 403); // Forbidden 92 | echo 'Target URL is not allowed!
Consult the documentation for this proxy to add the target URL to its Whitelist.'; 93 | return; 94 | } 95 | } 96 | 97 | // add token (if any) to the url 98 | $token = $serverUrls[$pos]['token']; 99 | if ($token) { 100 | $targetUrl .= (stripos($targetUrl, "?") !== false ? '&' : '?').'token='.$token; 101 | } 102 | 103 | // open the curl session 104 | $session = curl_init(); 105 | 106 | // set the appropriate options for this request 107 | $options = array( 108 | CURLOPT_URL => $targetUrl, 109 | CURLOPT_HEADER => false, 110 | CURLOPT_HTTPHEADER => array( 111 | 'Content-Type: ' . $_SERVER['CONTENT_TYPE'], 112 | 'Referer: ' . $_SERVER['HTTP_REFERER'] 113 | ), 114 | CURLOPT_RETURNTRANSFER => true, 115 | CURLOPT_FOLLOWLOCATION => true 116 | ); 117 | 118 | // put the POST data in the request body 119 | $postData = file_get_contents("php://input"); 120 | if (strlen($postData) > 0) { 121 | $options[CURLOPT_POST] = true; 122 | $options[CURLOPT_POSTFIELDS] = $postData; 123 | } 124 | curl_setopt_array($session, $options); 125 | 126 | // make the call 127 | $response = curl_exec($session); 128 | $code = curl_getinfo($session, CURLINFO_HTTP_CODE); 129 | $type = curl_getinfo($session, CURLINFO_CONTENT_TYPE); 130 | curl_close($session); 131 | 132 | // set the proper Content-Type 133 | header("Status: ".$code, true, $code); 134 | header("Content-Type: ".$type); 135 | 136 | echo $response; 137 | ?> 138 | -------------------------------------------------------------------------------- /resources/configurationPanel.js: -------------------------------------------------------------------------------- 1 | { 2 | "configurationSettings": [{ 3 | "category": "General", 4 | "fields": [{ 5 | "type": "webmap" 6 | }, { 7 | "type": "string", 8 | "fieldName": "title", 9 | "label": "Title", 10 | "tooltip": "Title", 11 | "placeHolder": "Title" 12 | }, { 13 | "type": "appproxies", 14 | "serviceProxies": [{ 15 | "title": "Route", 16 | "name": "route" 17 | }] 18 | }] 19 | }, { 20 | "category": "Theme", 21 | "fields": [{ 22 | "type": "subcategory", 23 | "label": "Colors" 24 | }, { 25 | "type": "paragraph", 26 | "value": "The color theme for this app can be defined in a few ways: Use the color picker to select a global color for the app; or check 'Cycle colors for layers' to show a different color for each of the layers in the map. This option will cycle through a set of predefined colors when you scroll through the different operational layers in the map." 27 | }, { 28 | "type": "boolean", 29 | "fieldName": "cycleColors", 30 | "label": "Cycle colors for layers (uncheck this if your organization has configured a shared theme.)", 31 | "tooltip": "Cycle colors for layers" 32 | }, { 33 | "type": "color", 34 | "fieldName": "color", 35 | "label": "Color", 36 | "tooltip": "Color", 37 | "sharedThemeProperty": "header.background" 38 | }, { 39 | "type": "string", 40 | "fieldName": "logo", 41 | "label": "Logo URL", 42 | "tooltip": "Logo", 43 | "placeHolder": "Logo URL", 44 | "sharedThemeProperty": "logo.small" 45 | }] 46 | }, { 47 | "category": "Options", 48 | "fields": [{ 49 | "type": "boolean", 50 | "fieldName": "showDirections", 51 | "label": "Enable routing directions", 52 | "tooltip": "Enable routing directions" 53 | }, { 54 | "type": "subcategory", 55 | "label": "Data Options" 56 | }, { 57 | "type": "boolean", 58 | "fieldName": "showDemographics", 59 | "label": "Show US demographics", 60 | "tooltip": "Show US demographics" 61 | }, { 62 | "type": "boolean", 63 | "fieldName": "showLifestyle", 64 | "label": "Show US lifestyle information", 65 | "tooltip": "Show US lifestyle information" 66 | }, { 67 | "type": "boolean", 68 | "fieldName": "showWeather", 69 | "label": "Show weather information", 70 | "tooltip": "Show weather information" 71 | }, { 72 | "type": "string", 73 | "fieldName": "weatherUnits", 74 | "tooltip": "Weather units", 75 | "label": "Weather units", 76 | "options": [{ 77 | "label": "F", 78 | "value": "F" 79 | }, { 80 | "label": "C", 81 | "value": "C" 82 | }] 83 | }, { 84 | "type": "subcategory", 85 | "label": "Buffer Settings" 86 | }, { 87 | "type": "boolean", 88 | "fieldName": "defaultToCenter", 89 | "label": "Use map center as default location", 90 | "tooltip": "Use map center as default location" 91 | }, { 92 | "type": "string", 93 | "fieldName": "distanceUnits", 94 | "tooltip": "Distance units", 95 | "label": "Distance units", 96 | "options": [{ 97 | "label": "Miles", 98 | "value": "miles" 99 | }, { 100 | "label": "Kilometers", 101 | "value": "kilometers" 102 | }, { 103 | "label": "Meters", 104 | "value": "meters" 105 | }] 106 | }, { 107 | "type": "number", 108 | "fieldName": "maxDistance", 109 | "label": "Maximum distance", 110 | "tooltip": "Maximum distance", 111 | "constraints": { 112 | "min": 10, 113 | "places": 0 114 | } 115 | }, { 116 | "type": "number", 117 | "fieldName": "defaultDistance", 118 | "label": "Default distance", 119 | "tooltip": "Default distance", 120 | "constraints": { 121 | "min": 1, 122 | "places": 0 123 | } 124 | }] 125 | }], 126 | "values": { 127 | "title": "Local Perspective", 128 | "logo": "images/logo.png", 129 | "color": "#80ab00", 130 | "cycleColors": true, 131 | "defaultToCenter": true, 132 | "showDemograpics": true, 133 | "showLifestyle": true, 134 | "showWeather": true, 135 | "weatherUnits": "F", 136 | "showDirections": false, 137 | "distanceUnits": "miles", 138 | "maxDistance": 10, 139 | "defaultDistance": 3 140 | } 141 | } -------------------------------------------------------------------------------- /resources/doc/addpremiumservice.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Configure Premium Service 7 | 67 | 68 | 69 |

Configure a Premium Service for anonymous access

70 |

This configurable app supports the configuration of the premium route service to support anonymous access scenarios like providing driving directions to a fixed destination or locating the closest site to the user’s location and routing them to that location.

71 |

Before you can publish and share your app, you need to follow the steps below to configure the route service for anonymous access.

72 |
    73 |
  1. Create a new item in ArcGIS Online or your portal 74 |
      75 |
    • Sign in to your organization and verify that you have privileges to create content.
    • 76 |
    • Open My Content and click Add Item.
    • 77 |
    • Choose On the Web from the The item is option. 78 |
    • Enter this URL to the World Route service: 79 |
      http://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World
      80 |
    • 81 |
    • Enter the Username and Password for an organizational account that has access to the service and select the option to store the credentials with the service item. If credentials are stored with the item, users will not be prompted for credentials when using the routing functionality in your app.
    • 82 |
    • Enter a title and tags for the item.
    • 83 |
    • Click Add Item after verifying that the dialog looks similar to this:
    • 84 |
    85 |
  2. 86 |
  3. Share the item with everyone. Sharing it with just the groups in your organization will still require users to login to access it.
  4. 87 |
  5. Limit usage of the route service you just added by defining rate limiting and referrer. 88 |
      89 |
    • On the item details page, click Edit then under Advanced Options click Limit Usage.
    • 90 |
    • Check Enable rate limiting and specify the number of requests per time period you want to allow.
    • 91 |
    • Specify the Referrer URL or IP to further restrict traffic. You can provide either the URL to your app, or if you plan to have multiple configurable apps that use this service you can specify the URL the configurable app root directory instead. The configurable app root directory will look something like this: http://www.arcgis.com/apps. 92 |
    • 93 |
    94 |
  6. 95 |
  7. Copy the URL for the item from the ArcGIS Web REST Connection section. You will need this URL when configuring the app.
  8. 96 |
  9. Return to the template configuration panel and configure the app to use the secure service by pasting the URL you copied in step 4 into the Route utility item field.
  10. 97 |
98 | 99 | -------------------------------------------------------------------------------- /resources/doc/images/additem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/resources/doc/images/additem.png -------------------------------------------------------------------------------- /resources/doc/images/additem_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/resources/doc/images/additem_dialog.png -------------------------------------------------------------------------------- /resources/doc/images/bullet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/resources/doc/images/bullet.png -------------------------------------------------------------------------------- /resources/doc/images/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/resources/doc/images/config.png -------------------------------------------------------------------------------- /resources/doc/images/rate_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/resources/doc/images/rate_info.png -------------------------------------------------------------------------------- /resources/doc/images/secure_url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/resources/doc/images/secure_url.png -------------------------------------------------------------------------------- /resources/doc/images/share_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpatialAgent/local-perspective/be79370990cf66d98e8dab67b351977fc921e1fc/resources/doc/images/share_dialog.png --------------------------------------------------------------------------------