source: main/adopters/ut/trunk/src/main/webapps/ibisph-view/WEB-INF/config/leaflet_maps.xml @ 19920

Last change on this file since 19920 was 19920, checked in by Paul Leo, 2 years ago

New GeoADI choropleth

File size: 26.6 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2
3<MAPS>
4        <!--
5                This configuration file is used for (2) purposes:
6                1) Provides the list of available map definitions that can be selected 
7                from an interface like the query builder's display step.  This structure
8                uses the MAP/TITLE and NAME elements.
9                2) Provides adopter/site specific json type map configuration "options"
10                which control what controls the map displays and where, what layers,
11                colors/styles, and how the maps interact with the user (functions). 
12                The map json configuration options are contained within the
13                LEAFLET_OPTIONS_JSON element.  The actual options are mostly contained
14                within this file.  The options consist of a base defintion which is
15                applied to all maps definitions via MAPS/LEAFLET_OPTIONS_JSON and a
16                specific named map options configuration via the
17                MAP[NAME=xyz]/LEAFLET_OPTIONS_JSON which is merged with the base options.
18
19                The intent is to provide an adopter with a configuration mechanism that
20                is familiar and consistent with other ibis code and provides all the
21                options to allow an adopter to highly customize their maps.  Note that
22                even though the code below are javascript json options it is implmented
23                in an existing, familiar IBIS XML pattern.  See the notes at the top of
24                the jquery.leaflet.js file for more information on how the map code
25                works and the basic options structure. The rest of the comments below
26                discuss the specific IBIS code map "options".
27
28                These options allow adopters to define global map properties and various
29                more specific map configurations for differing use cases.  For example
30                consider enviro vs alchol reports.  Each will want core road and water
31                layers but each will want specific layers like liquor stores vs toxic
32                waste dump sites.
33
34                LEAFLET_OPTIONS_JSON in both the general MAPS container and within the
35                specific MAP containers allows for the setting of most leaflet map and
36                plugin properties.  Properties are applied in the following heirarchy:
37                1) Default properties are defined within the associated leaflet .js files.
38                2) The general MAPS/LEAFLET_OPTIONS_JSON are then merged applied next.
39                3) Specific MAP[NAME=xyz]/LEAFLET_OPTIONS_JSON are merged/applied next.
40                4) Finally any request specific properties are applied.  These request
41                type property values are coded in the associated page request's XSLT and
42                are very specific and very few. 
43
44                Note the ordering of the above and the term "merge".  The properties
45                defined in #2 will overwrite the same exact property value defined in #1.
46                Having general mid level (non leaf node) blank definitions later in 2 or
47                4 will NOT clear existing #1 values.  The only way to clear a property
48                is to define a leaf node value (leaf node is an end node NOT anything
49                to do with leaflet). 
50
51                One other important note is that all the options are grouped in a general
52                container "options" which is passed into the jquery.leaflet.js (which
53                is java MVC controller type code.  The jquery.leaflet then determines
54                which subset of options are to be passed to the actual leaflet plugin
55                object constructors. Below is the general structure of the "options":
56                ,map: - Standard leaflet map
57                        @see: http://leafletjs.com/reference.html#map-options
58                ,zoomControl: - Based on leaflet zoom control. 
59                        @see: http://leafletjs.com/reference.html#control-zoom and L.Control.ZoomMin.js.
60                ,scaleControl: - Standard leaflet
61                        @see: http://leafletjs.com/reference.html#control-scale
62                ,layersControl: - Based on leaflet layerControl. 
63                        @see: http://leafletjs.com/reference.html#control-layers and L.Control.LayersPanel.js.
64                        ,layerGroups: - mentioned here because this is the bulk of this file.
65                                @see first definition below on this structure.
66                ,choroplethControl:- Based on leaflet control. 
67                        @see: http://leafletjs.com/reference.html#control and L.Control.LayersPanel.js.
68                ,infoPanelControl: - Standard leaflet control. 
69                        @see: http://leafletjs.com/reference.html#control and IBIS js code for events that populate content.
70
71                The map configs below provides an example of the items that most adopters
72                will need - namely the map position and the layerGroups.  To understand
73                what all is possible is outside the scope of notes (see above list of
74                @see urls).  Also, when viewing the API docs to understand all the
75                possibilities the actual leaflet plugin api/options documentation will
76                need to be traversed and studied (e.g. if the plugin extends another
77                plugin you will need to lookup that extended plugin's options).  In
78                general @see: http://leafletjs.com/reference.html.  For the IBIS plugins
79                you will likely need to view the actual options located at the top of
80                the js file.  Only IBIS specific properties are commented on below with
81                most being the layerGroup options.
82
83                NAMED MAP CONFIGURATIONS:
84                The more specific "named map" options code is specified by the request's
85                associated XSLT code.  For IP's the IP XML contains a MAP_NAME element
86                that is the default value used if no MapName HTTP request parameter is
87                found.  For query modules the MAP_NAME is specified by the user on the
88                builder page.   Each query module's CONFIGURATION element has an optional 
89                DEFAULT_MAP_NAME element that specifies the map name to use (like the IP
90                request the "MapName" HTTP request parameter can override this value). 
91
92                POINT AND LABEL OPTIONS:
93                        Standard Label config.  Shows feature.TITLE as the label.  Can add other HTML
94                        as wanted.  CSS styling via className.
95                        iconAnchor adjusts the position if wanted, iconSize specifies the size and centers over the point 40 seems decent.
96                        pointToLayer: function(feature, latlng)
97                        {
98                                return new L.marker(latlng,
99                                        {
100                                                icon: new L.divIcon( {html: feature.properties["TITLE"], className: "GeoLabel", iconAnchor: [-15, 0], iconSize: 40} )
101                                        }
102                                );
103                        }
104
105                        Point Icon only - hard to get the iconUrl correct for app context path.
106                        pointToLayer: function(feature, latlng)
107                        {
108                                return new L.marker(latlng,
109                                        {
110                                                icon: new L.icon( {iconUrl: "/ibisph-view/image/icon/16/minus_circle-blue.png"} )
111                                        }
112                                );
113                        }
114
115                        Point Icon - Circle marker - no text.
116                        pointToLayer: function(feature, latlng)
117                        {
118                                return new L.CircleMarker(latlng,
119                                        {
120                                                radius: 5
121                                                ,fillOpacity: 0.15
122                                                ,fillColor: "red"
123                                                ,color: "black"
124                                                ,weight: 2
125                                                ,opacity: 0.5
126                                        }
127                                );
128                        }
129
130                        Another mechanism to do labels.  Not optimal lots of CSS to turn off std defs.
131                        ,onEachFeature: function(feature, layer)
132                        {
133                                layer.bindLabel
134                                (
135                                        feature.properties.TITLE
136                                        ,{
137                                                noHide: true
138                                                ,pane: "markerPane"
139                                                ,className: "GeoLabel"
140                                                ,offset: [-15, 0]
141                                        }
142                                );
143                        }
144        -->
145
146        <!--
147                        core, base definitions that are the base to ALL map configurations
148                        These definitions only needed to be added to individual map configuations
149                        if they did to be different from these base/default settings
150                        Color Ramp settings were tested and modified using http://drpeterjones.com/colorcalc/
151        -->
152        <JSON_OPTIONS>
153        {
154                map:
155                {
156                        center: [39.5, -111.8]
157                        ,maxBounds: [[36, -106], [43, -118]]
158                        ,attributionControl: true
159                }
160
161                /* This is the map's intent/purpose/.  Valid values are:
162                        - selection = tells this code to build the geo area type selection UI.
163                        - choropleth= tells this code to build the choropleth control UI.
164                        - display   = not current used - for v3 demographics?
165                        NOTE: choropleth is the default but this value can be overridden
166                        by named configuration usage or even having specific js code for
167                        certain page requests.
168                */
169                ,type: "choropleth" 
170
171                ,layersControl:
172                {
173                        collapsed: false
174
175                        /* Main container for layers - specifically groups of layers.  Each
176                                group is defined starting with the group's key (example: "labels":).
177                                Each group structure contains a title property and a group type
178                                property.  The title is the text that appears at the top of that
179                                selections group in the control panel's UI.  The group type
180                                controls where within the layer UI control to include the group
181                                of layers (how to build the selections).
182
183                                Valid group "type" values are:
184                                - base      = put definitions in the base map grouping/area.
185                                - overlay   = put definitions in the overlays area.
186                                - selection = put definitions into the special geo area selection
187                                        area.  This is used when the map "type" property is "selection".
188                                - choropleth = choro grouping - not currently in use - hard coded.
189                                         The choropleth control is displayed when the map "type"
190                                         property is "choropleth".
191
192                                - defaultOptions = base options that all of the group's layers use.
193                                - layers = actual layer definition structure.
194                               
195                        */
196                        ,layerGroups:
197                        {
198                                /* The Geo type labels are implemented using a circle marker.  This was
199                                        done 1/2015 due to time limitations and works fine via the config
200                                        code below.  Another solution is to attach with the layer and use the
201                                        layer's poly min/max x/y to position.  See the L.GeoJSON.Choropleth.js
202                                        file line 219 for how this was started.  That code could be used for
203                                        other labeling of layers but would need to be attached and configed.
204                                */
205                                "labels":
206                                {
207                                        title: "Labels"
208                                        ,type: "overlay"
209                                        ,defaultOptions:
210                                        {
211                                                pointToLayer: function(feature, latlng)
212                                                {
213                                                        return L.marker(latlng,
214                                                                {
215                                                                        icon: L.divIcon( {html: feature.properties["TITLE"], className: "GeoLabel", iconAnchor: [15, 0]} )
216                                                                }
217                                                        );
218                                                }
219                                        }
220                                        ,layers:
221                                        {
222                                                "GeoCnty":
223                                                {
224                                                        title: "County"
225                                                        ,url: "json/map/GeoCntyLabel.json"
226                                                        ,show: false
227                                                        ,options:
228                                                        {
229                                                                pointToLayer: function(feature, latlng)
230                                                                {
231                                                                        return L.marker(latlng,
232                                                                                {
233                                                                                        icon: L.divIcon( {html: feature.properties["TITLE"], className: "GeoLabel", iconAnchor: [15, 10]} )
234                                                                                }
235                                                                        );
236                                                                }
237                                                        }
238                                                }
239                                                ,"GeoLHD":
240                                                {
241                                                        title: "Local Health District"
242                                                        ,url: "json/map/GeoLHD_2015Label.json" /* would like to change the name of this to GeoLHDLabel.json */
243                                                        ,show: false
244                                                        ,options:
245                                                        {
246                                                                pointToLayer: function(feature, latlng)
247                                                                {
248                                                                        return L.marker(latlng,
249                                                                                {
250                                                                                        icon: L.divIcon( {html: feature.properties["TITLE"], className: "GeoLabel", iconAnchor: [15, 10]} )
251                                                                                }
252                                                                        );
253                                                                }
254                                                        }
255                                                }
256                                        }
257                                }
258                                ,"general":
259                                {
260                                        title: ""               // if no title then no group title...
261                                        ,type: "base"  // isBaseMap: true
262                                        ,layers:
263                                        {
264                                                "osm":
265                                                {
266                                                        title: "Open Street Map"
267                                                        ,type: "tile"
268                                                        ,url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
269                                                        ,show: true
270                                                        ,options: {attribution: '&amp;copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'}
271                                                }
272                                                ,"none":
273                                                {       
274                                                        title: "None"
275                                                        ,type: "tile"
276                                                }
277                                        }
278                                }
279                                ,"roads":
280                                {
281                                        title: "Roads"
282                                        ,type: "overlay"
283                                        ,defaultOptions:
284                                        {
285                                                style:
286                                                {
287                                                        dashArray: "4,5"
288                                                        ,color: "#000"
289                                                        ,weight: 3
290                                                        ,opacity: 0.75
291                                                }
292                                        }
293                                        ,layers:
294                                        {
295                                                "interstates":
296                                                {
297                                                        title: "Interstates"
298                                                        ,url: "json/map/GeoRoadsInterstate.json"
299                                                        ,options:
300                                                        {
301                                                                style:
302                                                                {
303                                                                        dashArray: ""
304                                                                        ,color: "#B18D8D"
305                                                                        ,weight: 2
306                                                                        ,opacity: .8
307                                                                }
308                                                        }
309                                                }
310                                        }
311                                }
312                                ,"water":
313                                {
314                                        title: "Water"
315                                        ,type: "overlay" 
316                                        ,layers:
317                                        {
318                                                "main":
319                                                {
320                                                        title: "Major Lakes"
321                                                        ,url: "json/map/GeoWater.json"
322                                                        ,show: false
323                                                        ,options:
324                                                        {
325                                                                style:
326                                                                {
327                                                                        dashArray: ""
328                                                                        ,color: "blue"
329                                                                        ,weight: 2
330                                                                        ,opacity: 0.5
331                                                                }
332                                                        }
333                                                }
334                                        }
335                                }
336                                ,"regions":
337                                {
338                                        title: "Area Boundaries"
339                                        ,type: "overlay" 
340                                        ,layers:
341                                        {
342                                        }
343                                        ,layers:
344                                        {
345                                                "county":
346                                                {
347                                                        title: "Counties"
348                                                        ,url: "json/map/GeoCnty.json"
349                                                        ,options:
350                                                        {
351                                                                style:
352                                                                {
353                                                                        dashArray: ""
354                                                                        ,color: "#BCC5BC"
355                                                                        ,weight: 1.5
356                                                                        ,opacity: 1.0
357                                                                        ,fillOpacity: 0.0
358                                                                }
359                                                        }
360                                                }
361                                                ,"LHD":
362                                                {
363                                                        title: "Local Health Districts 2015"
364                                                        ,url: "json/map/GeoLHD.json"
365                                                        ,options:
366                                                        {
367                                                                style:
368                                                                {
369                                                                        dashArray: ""
370                                                                        ,color: "#BCC5BC"
371                                                                        ,weight: 1.5
372                                                                        ,opacity: 1.0
373                                                                        ,fillOpacity: 0.0
374                                                                }
375                                                        }
376                                                }
377                                        }
378                                }
379                        }
380                }
381
382                ,choroplethControl:
383                {
384                        legend:
385                        {
386                                titleRangeDisplayType: "PlusAfterStartValue"   // options are HighLowSame, LessThanEqualEndValue, PlusAfterStartValue, GreaterThanEqualRangeSeparator, default: -
387                        }
388
389                        /* 4-29-2017 THIS COLOR RAMP WAS THE ORIGINAL ONE USED BY UTAH, and Reversed Below
390                                ,areaColor:
391                        [
392                                ["black"]
393                                ,["transparent", "#2B8CBE"]
394                                ,["transparent", "#2B8CBE", "#7BCCC4"]
395                                ,["transparent", "#2B8CBE", "#7BCCC4", "#BAE4BC"]
396                                ,["transparent", "#2B8CBE", "#7BCCC4", "#BAE4BC", "#E8F5DC"]
397                                ,["white", "#1E5AA2", "#2B8CBE", "#7BCCC4", "#BAE4BC", "#ECFAE0"]
398                                ,["transparent", "#1C559D", "#1D74AA", "#2B96BE", "#7BCCC4", "#BAE4BC", "#ECFAE0"]
399                                ,["transparent", "#0C2C83", "#1C559D", "#1D74AA", "#2B96BE", "#7BCCC4", "#BAE4BC", "#ECFAE0"]
400                        ]
401                        */
402                        ,areaColor: // this is the preferred default order for UT
403                                [
404                                ["black"]
405                                ,["transparent", "#2B8CBE"]
406                                ,["transparent", "#7BCCC4", "#2B8CBE"]
407                                ,["transparent", "#BAE4BC", "#7BCCC4", "#2B8CBE"]
408                                ,["transparent", "#E8F5DC", "#BAE4BC", "#7BCCC4", "#2B8CBE"]
409                                ,["white", "#ECFAE0", "#BAE4BC", "#7BCCC4", "#2B8CBE", "#1E5AA2"]
410                                ,["transparent", "#ECFAE0", "#BAE4BC", "#7BCCC4", "#2B96BE", "#1D74AA", "#1C559D"]
411                                ,["transparent", "#ECFAE0", "#BAE4BC", "#7BCCC4", "#2B96BE", "#1D74AA", "#1C559D", "#0C2C83"]
412                        ]
413                }
414        }
415        </JSON_OPTIONS>
416
417        <!-- Named map configurations -->
418       
419       
420        <MAP><NAME>DEFAULT_2015</NAME><TITLE>Default 2015</TITLE> 
421                <DESCRIPTION>3 Groups Quantile 2015</DESCRIPTION>
422                <SORT_ORDER>1</SORT_ORDER>
423                <ACTIVE_FLAG>x</ACTIVE_FLAG>
424                <JSON_OPTIONS>
425                {
426                        layersControl:
427                        {
428                        }
429                        ,choroplethControl:
430                        {
431                               
432                                dataClasses:
433                                {
434                                        type:
435                                        {
436                                                value: "Quantile"
437                                                ,selections:
438                                                {
439                                                "Jenks":                 {title: "Jenks Natural Breaks", description: "Grouped by similar values - natural groupings inherent in the data"}
440                                                ,"Quantile":              {title: "Equal Groups (Quantile)", description: "Groups the data into equally sized value counts"}
441                                                ,"EqualInterval":         {title: "Equal Intervals", description: "Grouping based on equally sized value ranges"}
442                                                ,"StdDev":                {title: "Mean Standard Deviation", description: "Grouped by how much the value varies from the mean's value"}
443                                                ,"GeometricProgression":  {title: "Geometric Progression", description: "Equally sized group range and group count - works well on none normally distributed data"}
444                                                ,"ArithmeticProgression": {title: "Arithmetic Progression", description: "Alternative equally sized groups"}
445                                                }
446                                        }
447                                        ,numberOfGroups:
448                                        {
449                                                value: 3        // used to test data point count vs selection count otherwise can simply use the list size.
450                                                ,title: "Number of Categories"
451                                                ,description: "How many data value groups"
452                                                ,selections:
453                                                {
454                                                        "2": {title: "2", description: "2 groups - halfs"}
455                                                        ,"3": {title: "3", description: "3 groups - thirds"}
456                                                        ,"4": {title: "4", description: "4 groups - quarties"}
457                                                        ,"5": {title: "5", description: "5 groups - quintiles"}
458                                                        ,"6": {title: "6", description: "6 groups"}
459                                                        ,"7": {title: "7", description: "7 groups"}
460                                                }
461                                        }
462                                }
463                        }
464                }
465                </JSON_OPTIONS>
466        </MAP>
467
468        <MAP><NAME>1COLOR_NO_OPTIONS_2015</NAME><TITLE>1 Color 2015</TITLE>
469                <DESCRIPTION>One color, NO options</DESCRIPTION>
470                <SORT_ORDER>4</SORT_ORDER>
471                <ACTIVE_FLAG>x</ACTIVE_FLAG>
472                <JSON_OPTIONS>
473                {
474                        layersControl:
475                        {
476                        }
477                        ,choroplethControl:
478                        {
479                                dataClasses:
480                                {
481                                        type:
482                                        {
483                                                value: "Quantile"
484                                                ,title: "Equal Groups (Quantile)"
485                                                ,description: "Groups the data into equally sized value counts"
486                                                ,selections:
487                                                {
488                                                "Quantile":              {title: "Equal Groups (Quantile)"}
489                                                }
490                                        }
491                                        ,numberOfGroups:
492                                        {
493                                                value: 1        // used to test data point count vs selection count otherwise can simply use the list size.
494                                                ,title: "Number of Categories"
495                                                ,description: "How many data value groups"
496                                                ,selections:
497                                                {
498                                                        "1": {title: "1", description: "1 group"}
499                                                }
500                                        }
501                                }
502                        }
503                }       
504                </JSON_OPTIONS>
505        </MAP>
506        <MAP><NAME>HighLowSame_2015</NAME><TITLE>High Low Same 2015</TITLE>
507                <DESCRIPTION>HighLowSame 2015</DESCRIPTION>
508                <SORT_ORDER>3</SORT_ORDER>
509                <ACTIVE_FLAG>x</ACTIVE_FLAG>
510                <JSON_OPTIONS>
511                {
512                        layersControl:
513                        {
514                        }
515                        ,choroplethControl:
516                        {
517                                legend:
518                                {
519                                        titleRangeDisplayType: "HighLowSame"   // options are LessThanEqualEndValue, PlusAfterStartValue, GreaterThanEqualRangeSeparator, default: -
520                                }               
521                                ,dataClasses:
522                                {
523                                        type:
524                                                {
525                                                        value: "Quantile"
526                                                        ,title: "Equal Groups (Quantile)"
527                                                        ,description: "Groups the data into equally sized value counts"
528                                                        ,selections:
529                                                        {
530                                                        "Quantile":              {title: "Equal Groups (Quantile)"}
531                                                        }
532                                                }
533                                        ,numberOfGroups:
534                                        {
535                                                value: 3        // used to test data point count vs selection count otherwise can simply use the list size.
536                                                ,title: "Grouping Size"
537                                                ,description: "How many data value groups"
538                                                ,selections:
539                                                {
540                                                        "3": {title: "3", description: "3 groups - thirds"}
541                                                }
542                                        }
543                                }
544                        }
545                }
546                </JSON_OPTIONS>
547        </MAP>
548       
549        <MAP><NAME>GeoCBSA</NAME><TITLE>CBSA</TITLE> 
550                <DESCRIPTION>CBSA</DESCRIPTION>
551                <SORT_ORDER>5</SORT_ORDER>
552                <ACTIVE_FLAG>x</ACTIVE_FLAG>
553                <JSON_OPTIONS>
554                {
555                        layersControl:
556                        {
557                        }
558                        ,choroplethControl:
559                        {
560                               
561                                dataClasses:
562                                {
563                                        type:
564                                        {
565                                                value: "Quantile"
566                                                ,selections:
567                                                {
568                                                "Jenks":                 {title: "Jenks Natural Breaks", description: "Grouped by similar values - natural groupings inherent in the data"}
569                                                ,"Quantile":              {title: "Equal Groups (Quantile)", description: "Groups the data into equally sized value counts"}
570                                                ,"EqualInterval":         {title: "Equal Intervals", description: "Grouping based on equally sized value ranges"}
571                                                ,"StdDev":                {title: "Mean Standard Deviation", description: "Grouped by how much the value varies from the mean's value"}
572                                                ,"GeometricProgression":  {title: "Geometric Progression", description: "Equally sized group range and group count - works well on none normally distributed data"}
573                                                ,"ArithmeticProgression": {title: "Arithmetic Progression", description: "Alternative equally sized groups"}
574                                                }
575                                        }
576                                        ,numberOfGroups:
577                                        {
578                                                value: 3        // used to test data point count vs selection count otherwise can simply use the list size.
579                                                ,title: "Number of Categories"
580                                                ,description: "How many data value groups"
581                                                ,selections:
582                                                {
583                                                        "2": {title: "2", description: "2 groups - halfs"}
584                                                        ,"3": {title: "3", description: "3 groups - thirds"}
585                                                        ,"4": {title: "4", description: "4 groups - quarties"}
586                                                        ,"5": {title: "5", description: "5 groups - quintiles"}
587                                                        ,"6": {title: "6", description: "6 groups"}
588                                                        ,"7": {title: "7", description: "7 groups"}
589                                                }
590                                        }
591                                }
592                        }
593                }
594                </JSON_OPTIONS>
595        </MAP>
596
597        <MAP><NAME>GeoWFZone</NAME><TITLE>Weather Forecast Zone</TITLE> 
598                <DESCRIPTION>Weather Forecast Zone</DESCRIPTION>
599                <SORT_ORDER>6</SORT_ORDER>
600                <ACTIVE_FLAG>x</ACTIVE_FLAG>
601                <JSON_OPTIONS>
602                {
603                        layersControl:
604                        {
605                        }
606                        ,choroplethControl:
607                        {
608                               
609                                dataClasses:
610                                {
611                                        type:
612                                        {
613                                                value: "Quantile"
614                                                ,selections:
615                                                {
616                                                "Jenks":                 {title: "Jenks Natural Breaks", description: "Grouped by similar values - natural groupings inherent in the data"}
617                                                ,"Quantile":              {title: "Equal Groups (Quantile)", description: "Groups the data into equally sized value counts"}
618                                                ,"EqualInterval":         {title: "Equal Intervals", description: "Grouping based on equally sized value ranges"}
619                                                ,"StdDev":                {title: "Mean Standard Deviation", description: "Grouped by how much the value varies from the mean's value"}
620                                                ,"GeometricProgression":  {title: "Geometric Progression", description: "Equally sized group range and group count - works well on none normally distributed data"}
621                                                ,"ArithmeticProgression": {title: "Arithmetic Progression", description: "Alternative equally sized groups"}
622                                                }
623                                        }
624                                        ,numberOfGroups:
625                                        {
626                                                value: 3        // used to test data point count vs selection count otherwise can simply use the list size.
627                                                ,title: "Number of Categories"
628                                                ,description: "How many data value groups"
629                                                ,selections:
630                                                {
631                                                        "2": {title: "2", description: "2 groups - halfs"}
632                                                        ,"3": {title: "3", description: "3 groups - thirds"}
633                                                        ,"4": {title: "4", description: "4 groups - quarties"}
634                                                        ,"5": {title: "5", description: "5 groups - quintiles"}
635                                                        ,"6": {title: "6", description: "6 groups"}
636                                                        ,"7": {title: "7", description: "7 groups"}
637                                                }
638                                        }
639                                }
640                        }
641                }
642                </JSON_OPTIONS>
643        </MAP>
644       
645       
646        <MAP><NAME>GeoADI</NAME><TITLE>ADI</TITLE> 
647                <DESCRIPTION>ADI</DESCRIPTION>
648                <SORT_ORDER>5</SORT_ORDER>
649                <ACTIVE_FLAG>x</ACTIVE_FLAG>
650                <JSON_OPTIONS>
651                {
652                        layersControl:
653                        {
654                        }
655                        ,choroplethControl:
656                        {
657                               
658                                dataClasses:
659                                {
660                                        type:
661                                        {
662                                                value: "Quantile"
663                                                ,selections:
664                                                {
665                                                "Jenks":                 {title: "Jenks Natural Breaks", description: "Grouped by similar values - natural groupings inherent in the data"}
666                                                ,"Quantile":              {title: "Equal Groups (Quantile)", description: "Groups the data into equally sized value counts"}
667                                                ,"EqualInterval":         {title: "Equal Intervals", description: "Grouping based on equally sized value ranges"}
668                                                ,"StdDev":                {title: "Mean Standard Deviation", description: "Grouped by how much the value varies from the mean's value"}
669                                                ,"GeometricProgression":  {title: "Geometric Progression", description: "Equally sized group range and group count - works well on none normally distributed data"}
670                                                ,"ArithmeticProgression": {title: "Arithmetic Progression", description: "Alternative equally sized groups"}
671                                                }
672                                        }
673                                        ,numberOfGroups:
674                                        {
675                                                value: 3        // used to test data point count vs selection count otherwise can simply use the list size.
676                                                ,title: "Number of Categories"
677                                                ,description: "How many data value groups"
678                                                ,selections:
679                                                {
680                                                        "2": {title: "2", description: "2 groups - halfs"}
681                                                        ,"3": {title: "3", description: "3 groups - thirds"}
682                                                        ,"4": {title: "4", description: "4 groups - quarties"}
683                                                        ,"5": {title: "5", description: "5 groups - quintiles"}
684                                                        ,"6": {title: "6", description: "6 groups"}
685                                                        ,"7": {title: "7", description: "7 groups"}
686                                                }
687                                        }
688                                }
689                        }
690                }
691                </JSON_OPTIONS>
692        </MAP>
693
694        <MAP><NAME>None</NAME><TITLE>No Map</TITLE>
695                <DESCRIPTION>Turns off the map - will not show even if a dataset is mappable</DESCRIPTION>
696                <SORT_ORDER>10</SORT_ORDER>
697                <ACTIVE_FLAG>x</ACTIVE_FLAG>
698                <JSON_OPTIONS/>
699        </MAP>
700        <MAP><NAME>Selection</NAME><TITLE>Area Selections</TITLE>
701                <DESCRIPTION>Includes core base map and selection layer options</DESCRIPTION>
702                <NOT_SELECTABLE_FLAG/>
703                <SORT_ORDER>99</SORT_ORDER>
704                <ACTIVE_FLAG>x</ACTIVE_FLAG>
705                <JSON_OPTIONS>
706                {
707                        map:
708                        {
709                                zoom: 7
710                                ,minZoom: 5
711                                ,maxZoom: 14
712                        }
713                        ,type: "selection" 
714
715                        ,layersControl:
716                        {
717
718                                /* L.Control.LayersPanel uses these definitions */
719                                layerGroups:
720                                {
721                                        "labels":
722                                        {
723                                                title: "Labels"
724                                                ,type: "overlay"
725                                                ,defaultOptions:
726                                                {
727                                                        pointToLayer: function(feature, latlng)
728                                                        {
729                                                                return L.marker(latlng,
730                                                                        {
731                                                                                icon: L.divIcon( {html: feature.properties["TITLE"], className: "GeoLabel", iconAnchor: [15, 0]} )
732                                                                        }
733                                                                );
734                                                        }
735                                                }
736                                                ,layers:
737                                                {
738
739                                                }
740                                        }
741                                        ,"general":
742                                        {
743                                                title: ""               // if no title then no group title...
744                                                ,type: "base"  // isBaseMap: true
745                                                ,layers:
746                                                {
747                                                        "osm":
748                                                        {
749                                                                show: false
750                                                        }
751                                                }
752                                        }
753                                        ,"selections":
754                                        {
755                                                title: "Area Selections"
756                                                ,type: "selection"
757                                                ,defaultOptions:
758                                                {
759                                                        style:
760                                                        {
761                                                                dashArray: ""
762                                                                ,color: "#006600"
763                                                                ,weight: 2
764                                                                ,opacity: 0.8
765                                                        }
766                                                }
767                                                ,layers:
768                                                {
769                                                        "GeoCnty":
770                                                        {
771                                                                title: "County"
772                                                                ,type: "selection"
773                                                                ,url: "json/map/GeoCnty.json"
774                                                                ,show: true
775                                                                ,dependentHTMLInputElement: {name: "GeoProxy", value: "GeoCnty"}
776                                                        }
777                                                        ,"GeoRegion":
778                                                        {
779                                                                title: "Local Health District"
780                                                                ,type: "selection"
781                                                                ,url: "json/map/GeoLHD.json"
782                                                                ,show: false
783                                                                ,dependentHTMLInputElement: {name: "GeoProxy", value: "GeoLHD"}
784                                                        }
785                                                        ,"GeoSarea":
786                                                        {
787                                                                title: "Small Area"
788                                                                ,type: "selection"
789                                                                ,url: "json/map/GeoSarea.json"
790                                                                ,show: false
791                                                                ,dependentHTMLInputElement: {name: "GeoProxy", value: "GeoSarea"}
792                                                        }
793                                                        ,"GeoZIP":
794                                                        {
795                                                                title: "Zip Code"
796                                                                ,url: "json/map/GeoZIP.json"
797                                                                ,show: false
798                                                                ,dependentHTMLInputElement: {name: "GeoProxy", value: "GeoZip"}
799                                                        }
800                                                        ,"GeoWFZone":
801                                                        {
802                                                                title: "Weather Forecast Zone"
803                                                                ,url: "json/map/GeoWFZone.json"
804                                                                ,show: false
805                                                                ,dependentHTMLInputElement: {name: "GeoProxy", value: "GeoWFZone"}
806                                                        }
807                                                        ,"GeoCBSA":
808                                                        {
809                                                                title: "CBSA"
810                                                                ,url: "json/map/GeoCBSA.json"
811                                                                ,show: false
812                                                                ,dependentHTMLInputElement: {name: "GeoProxy", value: "GeoCBSA"}
813                                                        }
814                                                        ,"GeoADI":
815                                                        {
816                                                                title: "ADI"
817                                                                ,url: "json/map/GeoADI.json"
818                                                                ,show: false
819                                                                ,dependentHTMLInputElement: {name: "GeoProxy", value: "GeoADI"}
820                                                        }
821                                                }
822                                        }
823                                }
824                        }
825                }
826                </JSON_OPTIONS>
827
828                <JAVASCRIPT>
829                </JAVASCRIPT>
830
831        </MAP>
832
833</MAPS>
834
Note: See TracBrowser for help on using the repository browser.