-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprivate.xml
1819 lines (1652 loc) · 122 KB
/
private.xml
1
2
3
4
5
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE PrivateLabels SYSTEM "private.dtd" >
<PrivateLabels i18nPackage="org.opengts.db">
<!--
=======================================================================================
Project: OpenGTS - Open GPS Tracking System
URL : http://www.opengts.org
File : private.xml
=======================================================================================
Notes:
- The data format of this XML file is subject to change.
- A general tutorial on XML syntax can be found at "http://en.wikipedia.org/wiki/Xml"
- Value substitution variables are now in use in some values defined in this file.
They appear in the form "${Variable=defaultValue}", where "Variable" is a runtime
variable defined in one of the runtime property files ("default.conf","webapp.conf",
or "common.conf", etc), and "defaultValue" is the value to use for the substitution
if the named "Variable" is not found in the loaded runtime configuration files.
In all cases where you find "${Variable=defaultValue}", you can replace this sequence
with your own customized value "myValue". For instance, the "locale" attribute
on the "Domain" tag currently specifies the following:
locale="en"
If you wanted to set the current locale to Spanish, you replace this value with
locale="es"
- For "Property" tag specifications (parent tags "Properties", "MapProvider", and
"ReverseGeocodeProvider"), the key/value may be overidden in the 'config.conf' file.
The parent for the specified "Property" tag will contain an attribute "rtPropPrefix"
The value of this attribute indicates the property key prefix that can be used to
identify a specific property override in the 'config.conf' file. For instance,
the following property specification exists below:
<Properties rtPropPrefix="Domain.Properties.">
...
<Property key="topMenu.showMenuHelp">true</Property>
...
</Properties>
This means that the property value can be overidden in a 'config.conf' as follows:
Domain.Properties.topMenu.showMenuHelp=false
=======================================================================================
Change History:
2008/02/07 Martin D. Flynn
-Added 'i18n' attributes to displayable text to allow Localization.
2008/02/21 Martin D. Flynn
-Under the 'Domain' tag, replaced 'dateFormat' attribute with 'DateFormat' tag.
-Under the 'Domain' tag, replaced 'timeFormat' attribute with 'TimeFormat' tag.
-Added a few Europian timezones.
2008/04/11 Martin D. Flynn
-Modified MapProvider to allow specifying property key/values in separate tags.
2008/05/14 Martin D. Flynn
-Modified ReverseGeocodeProvider to allow specifying property key/val in separate tags.
-Added parent 'EMailAddresses' tag to 'EMailAddress' tags.
2008/06/20 Martin D. Flynn
-Added MapProvider section for Mapstraction support.
2008/07/08 Martin D. Flynn
-Additional changes to mapping support (Mapstraction, OpenLayers, etc).
2008/07/21 Martin D. Flynn
-The PageDecorations tag is now obsolete and has been removed from this 'private.xml'.
Page decorations are now handled by the JSP file at "war/track/jsp/loginSession.jsp".
-The attribute 'jsp' has been added to 'WebPages' and 'Pages' tags to allow specifying
a JSP to control the page look-and-feel.
2008/07/27 Martin D. Flynn
-Added 'Pushpins' tag section to parent 'MapProvider' tag.
2008/08/15 Martin D. Flynn
-Added Acl tag 'maximum' (was 'access') and 'default' attirbutes.
2008/09/12 Martin D. Flynn
-Added Domain properties "trackMap.showTimezoneSelection", "trackMap.showLastLocation"
2008/09/19 Martin D. Flynn
-Added "map.view" property support to MapProvider properties.
-Replaced property "trackMap.showLastLocation" with "trackMap.showUpdateLast".
2008/10/16 Martin D. Flynn
-Simplified ACL usage (attribute "maximum" changed to "values", reduced number of ACLs).
-Added additional Domain Properties
2008/12/01 Martin D. Flynn
-Global Domain Property tags have now been placed in a "Properties" parent tag.
2009/01/01 Martin D. Flynn
-Added Calendar property "calendar.firstDayOfWeek".
2009/02/01 Martin D. Flynn
-Added "<I18N>" tag section.
2009/02/20 Martin D. Flynn
-Various tag attribute and body-values may now have a value specification that resembles
something like "${Domain.key=defaultValue}". This means that when the value for this
attribute or tag body is evaluated, it will first attempt to obtain the value from
the runtime property definition file (ie. default.conf, webapp.conf, or common.conf).
If the specified key is not found in the runtime property files, then the value
specified for 'default' will be returned.
2009/05/01 Martin D. Flynn
-Added "StatusCodes" section for overriding the default status code descriptions.
2009/08/23 Martin D. Flynn
-Added "Legend" and "IconSelector" tags to MapProvider
2009/09/23 Martin D. Flynn
-Removed "${Domain....=}" variable substitution (to simplify configuration of open-source version)
2010/01/28 Martin D. Flynn
-Move Pushpins to common global area
2010/10/13 Martin D. Flynn
-Added SupportedLocales
=======================================================================================
-->
<!-- ==================================================================================== -->
<!-- Supported Locales ================================================================= -->
<!-- This list is used to populate the language selection pull-down menu on the login page.
=== To display the language selection pull-down menu on the login page, make sure that the
=== property "accountLogin.showLocaleSelection" is set to true.
-->
<SupportedLocales>
<!-- Locale id="ar" i18n="PrivateXML.locale.arabic" >Arabic</Locale -->
<Locale id="en" i18n="PrivateXML.locale.english" >English</Locale>
<Locale id="fr" i18n="PrivateXML.locale.french" >French</Locale>
<Locale id="de" i18n="PrivateXML.locale.german" >German</Locale>
<Locale id="el" i18n="PrivateXML.locale.greek" >Greek</Locale>
<Locale id="hu" i18n="PrivateXML.locale.hungarian" >Hungarian</Locale>
<Locale id="it" i18n="PrivateXML.locale.italian" >Italian</Locale>
<!-- Locale id="lo" i18n="PrivateXML.locale.lao" >Lao</Locale -->
<Locale id="nl" i18n="PrivateXML.locale.dutch" >Dutch</Locale>
<Locale id="pl" i18n="PrivateXML.locale.polish" >Polish</Locale>
<Locale id="pt" i18n="PrivateXML.locale.portuguese">Portuguese</Locale>
<Locale id="ro" i18n="PrivateXML.locale.romanian" >Romanian</Locale>
<Locale id="ru" i18n="PrivateXML.locale.russian" >Russian</Locale>
<Locale id="sk" i18n="PrivateXML.locale.slovak" >Slovak</Locale>
<Locale id="sr" i18n="PrivateXML.locale.serbian" >Serbian</Locale>
<Locale id="es" i18n="PrivateXML.locale.spanish" >Spanish</Locale>
<Locale id="tr" i18n="PrivateXML.locale.turkish" >Turkish</Locale>
</SupportedLocales>
<!-- TimeZones ========================================================================= -->
<!-- References:
==== http://wwp.greenwichmeantime.com/info/timezone.htm
==== http://www.worldtimezone.com
==== A list of available timezones can be found in the file 'timezones.conf'
==== These TimeZones will be shared among all of the specified PrivateLabel Domains
-->
<TimeZones>
US/Hawaii US/Alaska US/Pacific US/Arizona US/Mountain US/Central US/Eastern
Canada/Pacific Canada/Mountain Canada/Central Canada/Eastern Canada/Atlantic
Mexico/BajaNorte Mexico/BajaSur Mexico/General
Europe/Athens Europe/Berlin Europe/Dublin Europe/Helsinki Europe/Kiev Europe/Lisbon
Europe/London Europe/Madrid Europe/Moscow Europe/Oslo Europe/Paris Europe/Rome
Europe/Stockholm Europe/Zurich
GMT GMT+00:00
GMT+01:00 GMT+02:00 GMT+03:00 GMT+04:00 GMT+05:00 GMT+05:30 GMT+06:00 GMT+06:30 GMT+07:00
GMT+08:00 GMT+09:00 GMT+10:00 GMT+11:00 GMT+12:00 GMT+13:00 GMT+14:00
GMT-01:00 GMT-02:00 GMT-03:00 GMT-04:00 GMT-05:00 GMT-06:00 GMT-07:00
GMT-08:00 GMT-09:00 GMT-10:00 GMT-11:00 GMT-12:00
</TimeZones>
<!-- ================================================================================= -->
<!-- localhost ============================================================== -->
<!--
Notes:
* Make sure you replace all occurances of "example.com" below with your own domain name.
* The 'host' attribute on the 'Domain' tag specifies to which webserver domain name the 'Domain'
definition refers. Specifying 'host="*"' indicates that this 'Domain' tag should be considered
the default PrivateLabel Domain definition for all connections made to the server. You may create
multiple 'Domain' definitions, each with their own set of attributes and features.
* The OpenGTS system has the ability to bind Account records to a specific PrivateLabel domain
(defined by a "Domain" tag below). This is done to provide specific access control to certain
services such as mapping and reverse-geocoding. (ie. when a device connects to the server to send
data, the PrivateLabel defined for the account is used to determine which reverse-geocoding service
to use to create an address from the latitude/longitude). To bind an account record to a specific
PrivateLabel 'Domain', set the 'privateLabelName' column in the specific account record to the
specified 'name' of the Domain (ie. the value of the 'name' attribute). If an account record
'privateLabelName' has not been specified (ie. is blank), then the services defined in the default
PrivateLabel will be used.
* If no default PrivateLabel domain has been specified (ie. no 'Domain' tag exists with attribute
'host="*"'), then all Account records must have a valid 'privateLabelName' specified. Otherwise,
no PrivateLabel domain can be associated with the account, and some services (reverse-geocoding,
etc) may not be available.
* To remove the "Demo" button from the login pages, specify 'demo="false"' below.
* Supported languages now include:
"de" (German)
"el" (Greek)
"en" (English)
"es" (Spanish)
"fr" (French)
"hu" (Hungarian)
"it" (Italian)
"nl" (Netherlands/Dutch)
"pl" (Polish)
"pt" (Portuguese)
"ro" (Romanian)
"ru" (Russian)
"sk" (Slovak)
"sr" (Serbian)
"tr" (Turkish)
To change the locale to a different language, look for the locale="en" on the Domain tag below and
replace "en" with the desired supported language code from the above list.
-->
<Domain
name="${Domain.name=default}"
host="${Domain.host=*}"
allowLogin="${Domain.allowLogin=true}"
accountLogin="${Domain.accountLogin=true}"
userLogin="${Domain.userLogin=true}"
emailLogin="${Domain.emailLogin=false}"
showPassword="${Domain.showPassword=true}"
restricted="${Domain.restricted=false}"
demo="${Domain.demo=false}"
locale="${Domain.locale=en}">
<!-- Default Base URL -->
<!-- - ->
<BaseURL><![CDATA[http://localhost:8080/track/Track]]></BaseURL>
<!- - -->
<!-- Alias hosts (specifies other alias domains) -->
<Alias host="${Domain.Alias=localhost}"/> <!-- this should match the server host domain name -->
<Alias host="${Domain.Alias.1=}"/>
<Alias host="${Domain.Alias.2=}"/>
<!-- Default login account/user (when no AcountID/UserID is specified)
=== DefaultLoginAccount:
=== The default accout id will be used if the account id is left blank, or if the account login
=== field is not included on the login screen based on the Domain attribute 'accountLogin' value.
=== Default LoginUser:
=== "admin" is the default username and does not need to be explicitly specified. The "admin"
=== user need not exist as the default information from the 'Account' record will be used to
=== identify the 'admin' user (if the 'admin' user does exist, then it will override the user
=== identifying information in the Account record).
=== If the specified user is anything other than "admin", then the user MUST exist in the
=== User table otherwise login will always be denied when the user field is blank.
=== (Note: The 'defaultUser' column in the login "Account" table can override this value.)
-->
<DefaultLoginAccount>${Domain.DefaultLoginAccount=}</DefaultLoginAccount>
<DefaultLoginUser>${Domain.DefaultLoginUser=admin}</DefaultLoginUser>
<!-- ========================================================================================== -->
<!-- "Domain" level I18N Strings
=== Specify localizable strings here which can be referenced elsewhere in this XML file, or in
=== the "loginSession.jsp" file referenced in the "WebPages" tag.
=== - These strings can be referenced within property and string values by surrounding the key
=== with ${...}, such as "${i18n.MyLocalizableText}".
=== - Like other Localizable text, these strings will appear the in the various
=== "LocalStrings_XX.properties" files.
=== - The <I18N> tag section must appear before the refererence to the specific string key
=== elsewhere in this XML file.
-->
<I18N>
<!-- Legend -->
<String key="i18n.PushPin_Legend" i18n="PrivateXML.legend.title" >Pushpin Legend</String>
<String key="i18n.More_than_20mph" i18n="PrivateXML.legend.gt20mph" >More than %{mph:20}</String>
<String key="i18n.More_than_15mph" i18n="PrivateXML.legend.gt15mph" >More than %{mph:15}</String>
<String key="i18n.More_than_5mph" i18n="PrivateXML.legend.gt5mph" >More than %{mph:5}</String>
<String key="i18n.Less_than_5mph" i18n="PrivateXML.legend.lt5mph" >Less than %{mph:5}</String>
<String key="i18n.Last_Location" i18n="PrivateXML.legend.lastLocation" >Last Location</String>
<String key="i18n.Page_Title" i18n="PrivateXML.pageTitle" >GPS Tracking</String>
<!-- MenuGroup -->
<String key="i18n.Last_Location_Map" i18n="PrivateXML.menugroup.maps.lastLocMap">Last Location Map</String>
</I18N>
<!-- ========================================================================================== -->
<!-- Copyright used in html head 'meta' tag -->
<Copyright>${Domain.Copyright=Copyright(C) 2007-2017 GeoTelematic Solutions, Inc.}</Copyright>
<!-- Title used in html head 'title' tag -->
<PageTitle i18n="PrivateXML.pageTitle">${Domain.PageTitle=${ServiceAccount.Name=OpenGTS} GPS Tracking}</PageTitle>
<!-- Date/Time format (Note: These date/time format values are CASE SENSITIVE!!)
=== Formatting options:
=== yyyy - year
=== MM - month
=== dd - day
=== HH - 24 hour
=== hh - 12 hour
=== mm - minute
=== ss - second
=== aa - AM/PM
=== "DateFormat" below should be one of the following:
=== - yyyy/MM/dd
=== - MM/dd/yyyy
=== - dd/MM/yyyy
-->
<DateFormat>${Domain.DateFormat=yyyy/MM/dd}</DateFormat> <!-- see "java.text.SimpleDateFormat" -->
<TimeFormat>${Domain.TimeFormat=HH:mm:ss}</TimeFormat> <!-- see "java.text.SimpleDateFormat" -->
<!-- ========================================================================================== -->
<!-- Properties =============================================================================== -->
<!-- "Domain" level Properties -->
<!-- internal property references must be immediately resolvable. IE. no forward references. -->
<Properties rtPropPrefix="Domain.Properties.">
<!-- the "rtPropPrefix" value above can be used to override these properties in one of the
=== runtime '.conf' files. The property name can be constructed by concatenating the prefix
=== value with the property name below. For instance:
=== Domain.Properties.trackMap.calendarAction=fixed
-->
<!-- Default Enabled MapProvider -->
<!--
<Property key="MapProvider.active">googleMaps</Property>
<Property key="zoneInfo.showShapeColor">true</Property>
-->
<!-- Override HTMLTools "http.userAgent" (see RTKey.HTTP_USER_AGENT) -->
<Property key="http.userAgent">GTS/${%version} [${session.locale=EN}] ${session.name=}</Property>
<!-- Track properties -->
<Property key="track.validateIDs">true</Property> <!-- [true|false] validate all IDs (MUST BE TRUE) -->
<Property key="track.enableAuthenticationService">false</Property> <!-- [true|false] enable "page=AUTHENTICATE" -->
<Property key="track.forwardToSecureAccess">false</Property> <!-- [true|false] forward 'http' to 'https' -->
<Property key="track.firstLoginPageID">menu.top</Property> <!-- [menu.top|map.device|map.fleet] first page after login -->
<!-- AccountLogin properties -->
<Property key="accountLogin.showLoginLink">true</Property> <!-- [true|false] show "Login" link on login page -->
<Property key="accountLogin.legacyLAF">false</Property> <!-- [true|false] show "Login" legacy look-and-feel -->
<Property key="accountLogin.showLocaleSelection">false</Property> <!-- [true|false] (EXPERIMENTAL) show "Language" selection on login page -->
<!-- MenuBar properties -->
<Property key="menuBar.openOnMouseOver">true</Property> <!-- [true|false] popup menu on mouseover -->
<Property key="menuBar.includeTextAnchor">false</Property> <!-- [true|false] include text anchor tag (link) -->
<!-- TopMenu menu type -->
<Property key="topMenu.menuType">expand</Property> <!-- [fixed|expand|button] menu type -->
<!--
=== fixed : Fixed (non-expandable) text menu items
=== fixed-icon : Fixed text menu items with icon representation (set by "IconImage" tag)
=== expand : Expandable text menu items
=== expand-icon : Expandable icon menu items (set by "IconImage" tag)
=== button : "ButtonImage" button menu items (set by "ButtonImage" tag)
=== button-icon : "ButtonImage" button ("ButtonImage" tag), with icon ("IconImage" tag) overlay, menu items
-->
<!-- TopMenu properties -->
<Property key="topMenu.maximumIconsPerRow">9</Property> <!-- [#] (for 'menuType=icon') max icons per row -->
<Property key="topMenu.showHeader">default</Property> <!-- [true|false|default] show header -->
<Property key="topMenu.showMenuDescription">long</Property> <!-- [none|short|long] show menu description -->
<Property key="topMenu.showMenuHelp">true</Property> <!-- [true|false] show menu help -->
<!-- TrackMap properties -->
<Property key="trackMap.fleetDeviceEventCount">1</Property> <!-- [#] limit of points per device on "fleet" map -->
<Property key="trackMap.showFleetMapDevicePushpin">default</Property> <!-- [default|true|false] display device pushpin on fleet map -->
<Property key="trackMap.calendarAction">fade</Property> <!-- [fixed|fade|popup] calendar action -->
<Property key="trackMap.calendarDateOnLoad">last</Property> <!-- [last|current] set calendar date OnLoad -->
<Property key="trackMap.showTimezoneSelection">true</Property> <!-- [true|false] show timezone selection pulldown -->
<Property key="trackMap.showPushpinReplay">true</Property> <!-- [true|false] show "Replay" button (device map only) -->
<Property key="trackMap.showCursorLocation">true</Property> <!-- [true|false] show cursor location lat/lon -->
<Property key="trackMap.showDistanceRuler">true</Property> <!-- [true|false] show distance ruler (if supported by map) -->
<Property key="trackMap.showLegend">true</Property> <!-- [true|false] show legend -->
<Property key="trackMap.mapUpdateOnLoad">all</Property> <!-- [all|last] Update Map -->
<Property key="trackMap.autoUpdateRecenter">zoom</Property> <!-- [no|last|zoom] recenter map on auto-update -->
<Property key="trackMap.detailCenterPushpin">false</Property> <!-- [true|false] center pushpin when selecting a detail row -->
<Property key="trackMap.showLocationDetails">true</Property> <!-- [true|false] show "Location Details" report -->
<Property key="trackMap.detailAscending">true</Property> <!-- [true|false] sort detail events in ascending/descending order -->
<Property key="trackMap.showUpdateAll">true</Property> <!-- [true|false] show "Update All" location button -->
<Property key="trackMap.showUpdateLast">false</Property> <!-- [true|false] show Update "Last" location button -->
<Property key="trackMap.mapControlLocation">right</Property> <!-- [right|left] show controls to the left|right of the map -->
<Property key="trackMap.mapControlCollapsible">true</Property> <!-- [true|false] show collapsible controls -->
<Property key="trackMap.showLocateNow">false</Property> <!-- [true|false] show "Locate Now" button -->
<Property key="trackMap.showGoogleKML">false</Property> <!-- [true|false|last] show "Google KML" link -->
<Property key="trackMap.limitType">last</Property> <!-- [first|last] overflow limit type -->
<Property key="trackMap.enableGeocode">false</Property> <!-- [true|false] (EXPERIMENTAL) show "Find Address" -->
<Property key="trackMap.showDeviceLink">false</Property> <!-- [true|false] show Device Link (requires Device support) -->
<Property key="trackMap.showBatteryLevel">false</Property> <!-- [false|icon|percent|default] show last Battery Level (requires Device support) -->
<Property key="trackMap.useRouteDisplayColor">true</Property> <!-- [true|false] use Device 'displayColor' for route-line color -->
<Property key="trackMap.showAllContainedGeozones">false</Property> <!-- [true|false] (EXPERIMENTAL) show all contained Geozones ('false' shows only 'inner' Geozone) -->
<Property key="trackMap.lastDevicePushpin.fleet">true</Property> <!-- [true|false] show device pushpin for last pushpin on fleet map -->
<Property key="trackMap.lastDevicePushpin.device">false</Property> <!-- [true|false] show device pushpin for last pushpin on device map -->
<!-- GoogleKML properties -->
<Property key="googleKML.lastPushpinID">blue</Property> <!-- Color ID of the last event pushpin -->
<!-- ReportMenu properties -->
<Property key="reportMenu.useMapDates">true</Property> <!-- [true|false] use 'Map' Calendar dates (else use private dates) -->
<Property key="reportMenu.showTimezoneSelection">true</Property> <!-- [true|false] show timezone selection pulldown -->
<Property key="reportMenu.enableReportEmail">false</Property> <!-- [true|false] enable 'EMail' format option for reports -->
<Property key="reportMenu.customFormatURL"></Property> <!-- [URL] (EXPERIMENTAL) -->
<!-- ReportDisplay properties -->
<Property key="reportDisplay.showGoogleKML">false</Property> <!-- [true|false] show "KML" link (supported reports only) -->
<!-- DeviceInfo properties -->
<Property key="deviceInfo.allowEditServerID">false</Property> <!-- [true|false] Allow editing "Server ID" -->
<Property key="deviceInfo.allowEditFirmwareVersion">false</Property> <!-- [true|false] Allow editing "Firmware Version" -->
<Property key="deviceInfo.showNotificationFields">default</Property> <!-- [true|false|default] show notification fields -->
<Property key="deviceInfo.showWorkOrderField">default</Property> <!-- [true|false|default] show WorkOrder ID field -->
<Property key="deviceInfo.showPropertiesButton">false</Property> <!-- [true|false] show "Properties" button -->
<Property key="deviceInfo.showSmsButton">false</Property> <!-- [true|false] show "SMS" button -->
<Property key="deviceInfo.showFixedLocation">false</Property> <!-- [true|false] show Device 'fixed' location (required fixe loc fields) -->
<Property key="deviceInfo.showNotes">false</Property> <!-- [true|false] show "Notes" field -->
<Property key="deviceInfo.showExpectedAcks">false</Property> <!-- [true|false] show "Expect Ack" column -->
<Property key="deviceInfo.showIgnitionIndex">false</Property> <!-- [true|false] show Ignition Index -->
<Property key="deviceInfo.maximumIgnitionIndex">7</Property> <!-- [0..15] maximum Ignition Index -->
<Property key="deviceInfo.showPushpinID">true</Property> <!-- [true|false] show Pushpin ID -->
<Property key="deviceInfo.showPushpinChooser">true</Property> <!-- [true|false] show Pushpin Chooser -->
<Property key="deviceInfo.showDisplayColor">true</Property> <!-- [true|false] show Display Color ("Route-Line") -->
<Property key="deviceInfo.showDataKey">false</Property> <!-- [true|false] (EXPERIMENTAL) show Data Key -->
<Property key="deviceInfo.showServiceID">true</Property> <!-- [true|false] show Service ID -->
<Property key="deviceInfo.allowNewDevice">true</Property> <!-- [true|false|sysadmin] allow new device creation -->
<Property key="deviceInfo.allowDeleteDevice">true</Property> <!-- [true|false|sysadmin] allow delete device -->
<Property key="deviceInfo.showFaultCodes">false</Property> <!-- [true|false] show last fault codes (requires Device/EventData table support) -->
<Property key="deviceInfo.sms.useDeviceSMSCommands">true</Property> <!-- [true|false] Use Device "deviceCode" SMS commands -->
<Property key="deviceInfo.showFuelCapacity">false</Property> <!-- [true|false] show fuel capacity -->
<Property key="deviceInfo.showFuelLevelProfile">false</Property> <!-- [false|select|text] show fuel profile -->
<!-- GroupInfo properties -->
<Property key="groupInfo.showPropertiesButton">false</Property> <!-- [true|false] show "Properties" button -->
<Property key="groupInfo.deviceListSortBy">desc</Property> <!-- [id|desc] sort device member list by -->
<!-- UserInfo properties -->
<Property key="userInfo.showPreferredDeviceID">false</Property> <!-- [true|false|admin] show preferred device ID field -->
<Property key="userInfo.showPassword">false</Property> <!-- [true|false] Show passwords on User admin -->
<Property key="userInfo.authorizedGroupCount">0</Property> <!-- [Integer] (EXPERIMENTAL) Number of authorized group pull-downs to show -->
<!-- DriverInfo properties -->
<Property key="driverInfo.showDeviceID">false</Property> <!-- [true|false] Show "Device ID" field -->
<!-- ZoneInfo properties -->
<Property key="zoneInfo.mapControlLocation">right</Property> <!-- [right|left] show controls to the left|right of the map -->
<Property key="zoneInfo.enableGeocode">false</Property> <!-- [true|false] (Experimental) show "Center on ZipCode" -->
<Property key="zoneInfo.showOverlapPriority">false</Property> <!-- [true|false] show "Overlap Priority" pull-down -->
<Property key="zoneInfo.showArriveDepartZone">true</Property> <!-- [true|false] show "Arrival/Departure Zone" checkbox -->
<Property key="zoneInfo.showAutoNotify">false</Property> <!-- [true|false] show "Auto Notify" checkbox (also requires email setup) -->
<Property key="zoneInfo.showClientUploadZone">false</Property> <!-- [true|false|id] show "Client Upload" checkbox/ID -->
<Property key="zoneInfo.showShapeColor">true</Property> <!-- [true|false] show zone shape color -->
<Property key="zoneInfo.showSpeedLimit">false</Property> <!-- [true|false] show speed limit -->
<Property key="zoneInfo.maximumDisplayedVertices">-1</Property> <!-- [1..8] maximum number of point/vertices to display -->
<!-- StatusCodeInfo properties (module may not be present) -->
<Property key="statusCodeInfo.showIconSelector">true</Property> <!-- [true|false] Show Icon 'Rule' Selector? -->
<Property key="statusCodeInfo.showPushpinChooser">true</Property> <!-- [true|false] show Pushpin Chooser -->
<!-- SysAdminAccounts properties (module may not be present) -->
<Property key="sysAdminAccounts.allowDeleteAccount">true</Property> <!-- [true|false] allow delete account -->
<Property key="sysAdminAccounts.showPasswords">false</Property> <!-- [true|false] show passwords (possible security risk) -->
<Property key="sysAdminAccounts.showAccountManager">false</Property> <!-- [true|false] show account manager, if supported -->
<Property key="sysAdminAccounts.showNotes">false</Property> <!-- [true|false] show "Notes" -->
<!-- Account-Login properties (if available) -->
<Property key="accountLogin.enableLogin">false</Property> <!-- [true|false] allow login to other accounts (possible security risk) -->
<Property key="accountLogin.passcode">relogin</Property> <!-- [String] (EXPERIMENTAL) relogin passcode (possible security risk) -->
<Property key="accountLogin.enableReturn">false</Property> <!-- [true|false] allow return to originator on logout -->
<!-- CorridorInfo properties (module may not be present) -->
<Property key="corridorInfo.mapControlLocation">right</Property> <!-- [right|left] show controls to the left|right of the map -->
<Property key="corridorInfo.showShapeColor">true</Property> <!-- [true|false|id] show corridor shape color -->
<Property key="corridorInfo.enableGeocode">false</Property> <!-- [true|false] (Experimental) show "Center on ZipCode" -->
<Property key="corridorInfo.pointCount">15</Property> <!-- [Integer] show number of corridor points -->
<!-- RuleInfo properties (module may not be present) -->
<Property key="ruleInfo.showEMailWrapper">false</Property> <!-- [true|false] Show "Use EMail Wrapper" -->
<Property key="ruleInfo.showSysAdminRules">yes</Property> <!-- [no|yes|only] SysAdmin rules only? -->
<Property key="ruleInfo.showCronRules">true</Property> <!-- [no|yes|only] SysAdmin rules only? -->
<Property key="ruleInfo.ruleTagList">hourly,daily,weekly</Property> <!-- [String,String,...] Displayed Rule Tags -->
<Property key="ruleInfo.showPredefinedActions">false</Property> <!-- [true|false] Display predefined (canned) actions -->
<!-- SysAdminInfo properties (module may not be present) -->
<Property key="sysAdminInfo.showEventsPerSecond">false</Property> <!-- [true|false] show Events-Per-Second -->
<!-- DeviceChooser properties -->
<Property key="deviceChooser.sortBy">description</Property> <!-- [id|name|description] sort by -->
<Property key="deviceChooser.useTable">true</Property> <!-- [true|false] use DeviceChooser table selection -->
<Property key="deviceChooser.idPosition">last</Property> <!-- [none|first|last] ID column position -->
<Property key="deviceChooser.search">false</Property> <!-- [true|false] enable description search -->
<Property key="deviceChooser.matchContains">true</Property> <!-- [true|false] match on 'contains' (otherwise 'startsWith') -->
<Property key="deviceChooser.singleItemTextField">false</Property> <!-- [true|false] text field for single selections (non-table only) -->
<Property key="deviceChooser.includeListHtml">false</Property> <!-- [true|false] EXPERIMENTAL -->
<Property key="deviceChooser.extraDebugEntries">0</Property> <!-- DEBUG TESTING PURPOSES ONLY! -->
<!-- Calendar properties -->
<Property key="calendar.firstDayOfWeek">0</Property> <!-- [0=Sun,1=Mon,...6=Sat] calendar first day of week -->
<Property key="calendar.timeTextField">true</Property> <!-- [true|false] allow entering hour:minute via a text field -->
<!-- DeviceAlerts properties (module may not be present) -->
<Property key="deviceAlerts.refreshInterval">120</Property> <!-- [#sec] refresh interval in seconds -->
<!-- <Property key="deviceAlerts.mapPageName">map.fleet</Property> --> <!-- [<pageName>] forwarded page name -->
<!-- <Property key="deviceAlerts.mapPageName">map.device</Property> --> <!-- [<pageName>] forwarded page name -->
<Property key="deviceAlerts.showAllDevices">false</Property> <!-- [true|false] show all devices (incl those without alerts) -->
<Property key="deviceAlerts.maxActiveAlertAge">21600</Property> <!-- [#sec] maximum 'active' alert (21600 == 6 hrs)-->
<!-- Obsolete properties -->
<!--
<Property key="groupInfo.validateNewIDs">true</Property>
<Property key="userInfo.validateNewIDs">true</Property>
<Property key="driverInfo.validateNewIDs">true</Property>
<Property key="zoneInfo.validateNewIDs">true</Property>
<Property key="sysAdminAccounts.validateNewIDs">true</Property>
<Property key="roleInfo.validateNewIDs">true</Property>
<Property key="ruleInfo.validateNewIDs">true</Property>
<Property key="deviceInfo.validateNewIDs">true</Property>
-->
</Properties>
<!-- ========================================================================================== -->
<!-- Default Pushpins =========================================================================
=== Pushpins creation options:
=== http://www.powerhut.co.uk/googlemaps/custom_markers.php
-->
<!-- The "Pushpins" tag section allows overriding the pushpins displayed on the map.
=== These are the standard Google icons
=== IE. http://labs.google.com/ridefinder/images/mm_20_red.png
-->
<!--
<Pushpins baseURL="http://labs.google.com/ridefinder/images/">
<Pushpin key="black" icon="mm_20_black.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="brown" icon="mm_20_brown.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="red" icon="mm_20_red.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="orange" icon="mm_20_orange.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="yellow" icon="mm_20_yellow.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="green" icon="mm_20_green.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="blue" icon="mm_20_blue.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="purple" icon="mm_20_purple.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="gray" icon="mm_20_gray.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
<Pushpin key="white" icon="mm_20_white.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
</Pushpins>
<!- - -->
<!-- The "Pushpins" tag section allows overriding the default pushpins displayed on the map. -->
<!-- (these icons created using "Marker Maker") -->
<Pushpins baseURL="images/pp/">
<!-- override standard color pushpins -->
<Pushpin key="black" icon="pin30_black.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="brown" icon="pin30_brown.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="red" icon="pin30_red.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="orange" icon="pin30_orange.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="yellow" icon="pin30_yellow.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="green" icon="pin30_green.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="blue" icon="pin30_blue.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="purple" icon="pin30_purple.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="gray" icon="pin30_gray.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="white" icon="pin30_white.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<!-- other solid colors -->
<Pushpin key="darkred" icon="pin30_darkred.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="darkgreen" icon="pin30_darkgreen.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="darkblue" icon="pin30_darkblue.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="darkpurple" icon="pin30_darkpurple.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="teal" icon="pin30_teal.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="salmon" icon="pin30_salmon.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="gold" icon="pin30_gold.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="pink" icon="pin30_pink.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="lime" icon="pin30_lime.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="bluegray" icon="pin30_bluegray.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="magenta" icon="pin30_magenta.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<!-- some additional pushpins -->
<Pushpin key="reddot" icon="pin30_red_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="greendot" icon="pin30_green_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="bluedot" icon="pin30_blue_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
</Pushpins>
<!-- Multiple 'Pushpins' tags may be specified -->
<Pushpins baseURL="images/pp/">
<!--
=== This example shows how a custom pushpin marker can be generated from within Javascript itself.
=== The Javascript function argument 'e' below, is a pointer to a 'MapEventRecord' object which
=== contains the following properties relative to the current event:
=== device : The Device ID
=== timestamp : The Epoch timestamp
=== date : The date (formatted per the Domain/Account specifications)
=== time : The time (formatted per the Domain/Account specifications)
=== code : The StatusCode description
=== iconNdx : The icon index
=== latitude : The Latitude
=== longitude : The Longitude
=== speedKPH : The speed in km/h
=== speedMPH : The speed in mph
=== heading : The heading (in drgrees)
=== compass : The compas heading (N,NE,E,SE,S,SW,W,NW)
=== altitude : The altitude in meters
=== address : The street address (may be blank if address is not available)
=== =======================
=== The example Javascript functions 'evHeadingYellowURL', 'evHeadingGreenURL', and 'evHeadingMarkerURL',
=== can be found in the 'jsmap.js' file and analyzes the event 'heading' and returns a URL reference that
=== indicates the direction of travel.
=== =======================
=== The Pushpin keys "all", "fleet", "stop", "slow", "moving", "last" below are used by the default icon
=== selector "<EventData>.getDefaultMapIconIndex(...)" to select a pushpin icon for the map.
-->
<!-- If uncommented, the "all" key will control ALL icon selections for the map - ->
<Pushpin key="all" eval="evHeadingMarkerURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_green_h1.png"/>
<!- - -->
<Pushpin key="fleet" icon="pin30_blue_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="stop" icon="pin30_red_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<Pushpin key="slow" eval="evHeadingYellowURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_yellow_h1.png"/>
<Pushpin key="moving" eval="evHeadingGreenURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_green_h1.png"/>
<!-- If uncommented, the "last" key will control the icon selected for the last pushpin on the map within the date range - ->
<Pushpin key="last" icon="pin30_blue_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
<!- - -->
</Pushpins>
<Pushpins baseURL="images/pp/">
<Pushpin key="greenh" eval="evHeadingGreenURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_green_h1.png"/>
<Pushpin key="yellowh" eval="evHeadingYellowURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_yellow_h1.png"/>
<Pushpin key="heading" eval="evHeadingMarkerURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_green_h1.png"/>
</Pushpins>
<!-- Text Label pushpin -->
<Pushpins baseURL="">
<!--
=== - This uses image "label47_fill.png" and calls back to 'Track.java' (see PAGE_MARKER)
=== to write the device short name into the png image. "label47_fill.png" can handle
=== text up to 6 or 7 characters long (using 9pt font).
=== - To use this feature, edit the Device information (using the Device Admin page), add
=== a 'Short Name', and select "label" for the 'Group Pushpin ID'. The icon will show
=== on the fleet map with the embedded short-name text (if a short name has not been
=== entered, the DeviceID will be used).
-->
<Pushpin key="devlabel" eval="evDeviceNameIconURL(e)" iconSize="47,24" iconOffset="9,24" image="images/pp/label47_fill.png"/>
<!-- "evDeviceNameIconURL" is defined in 'jsmap.js' -->
</Pushpins>
<!-- ========================================================================================== -->
<Legend type="device" includeDefault="true">
<Title>${i18n.PushPin_Legend}:</Title>
<!-- If the text field contains any of the following key replacement vars, the value
=== will be replaced with the speed units of the current account:
=== %{kph:XX} : XX, specified in km/h, will be converted to the account speed units
=== %{mph:XX} : XX, specified in mph, will be converted to the account speed units
=== IE. "%{mph:20}" is replaced with "32 km/h" if the current account speed units is km/h
-->
<Icon name="greendot" scale="0.7">${i18n.More_than_20mph}</Icon>
<Icon name="yellow" scale="0.7">${i18n.More_than_5mph}</Icon>
<Icon name="stop" scale="0.7">${i18n.Less_than_5mph}</Icon>
</Legend>
<Legend type="fleet" includeDefault="true">
<Title>${i18n.PushPin_Legend}:</Title>
<Icon name="bluedot" scale="0.7">${i18n.Last_Location}</Icon>
</Legend>
<!-- ========================================================================================== -->
<!-- MapProvider notes:
=== - All MapProvider classes listed here must implement "org.opengts.war.tools.MapProvider"
=== - Only the first "active" MapProvider will be used.
=== - Remove the XML comment characters from around any Property you wish to change.
=== Most map providers should support the following properties:
=== <Property key="javascript.src"><![CDATA[
=== http://js.example.com/js/MyCustomJavaScript.js
=== ]]></Property> - include additional Javascript
=== <Property key="zone.map.width">-1</Property> - Geozone map width
=== <Property key="zone.map.height">530</Property> - Geozone map height
=== <Property key="map.width">680</Property> - width of the map in pixels
=== <Property key="map.height">470</Property> - height of the map in pixels
=== <Property key="map.maxPushpins">500</Property> - maximum number of displayed pushpins
=== <Property key="map.maxPushpins.device">500</Property> - maximum number of displayed pushpins for device map only
=== <Property key="map.maxPushpins.fleet">500</Property> - maximum number of displayed pushpins for fleet map only
=== <Property key="map.maxPushpins.report">500</Property> - maximum number of displayed pushpins for report map only
=== <Property key="map.routeLine">true</Property> - include travel route line
=== <Property key="map.routeLine.color">#FF2222</Property> - include travel route line color
=== <Property key="map.routeLine.arrows">false</Property> - include travel route line (GoogleMaps only - blue)
=== <Property key="map.minProximity">0.0</Property> - minimum meters between adjacent events
=== <Property key="default.zoom">4</Property> - default zoom when no pushpins are displayed
=== <Property key="default.lat">39.0000</Property> - default latitude when no pushpins are displayed
=== <Property key="default.lon">-100.0000</Property> - default longitude when no pushpins are displayed
=== <Property key="auto.enable">true</Property> - enable/disable auto-update
=== <Property key="auto.interval">30</Property> - auto-update interval (in seconds)
=== <Property key="auto.count">10</Property> - maximum number of auto-updates
=== <Property key="auto.skipRadius">15</Property> - skip nearby points radius (meters) [OpenLayers/Google only]
=== Most map providers will support the following properties (but possible not all):
=== <Property key="replay.enable">true</Property> - enable/disable replay
=== <Property key="replay.interval">1700</Property> - milliseconds replay interval (values < 30 are interpreted as seconds)
=== <Property key="replay.singlePushpin">false</Property> - show only single pushpin during replay
-->
<!-- =============================================
=== OpenLayers [http://www.openlayers.org]
=== using OpenStreetMaps [http://www.openstreetmap.org]
=== When using an OpenStreetMaps tile-server, please comply with their "Tile Usage Policy":
=== http://wiki.openstreetmap.org/wiki/Tile_usage_policy
-->
<MapProvider name="openLayers"
active="${Domain.MapProvider.active=true}"
class="org.opengts.war.maps.jsmap.OpenLayers"
rtPropPrefix="Domain.MapProvider.">
<!-- override location of OpenLayers client-side JavaScript
=== If you wish to keep your own local cache of the OpenLayers.js JavaScript
=== Copy the OpenLayers.js module to a local server, then change this link
=== to point to your local cached version.
-->
<!-- Property key="openlayers.js">./js/openlayers/OpenLayers.js</Property -->
<!-- Property key="openlayers.js">http://openlayers.org/api/OpenLayers.js</Property -->
<Property key="useSSL">auto</Property>
<!-- MapQuest layers (2016/07/11: no longer supported by MapQuest) -->
<Property key="mapQuest.enableLayer.osm">false</Property> <!-- show MapQuest OSM map layer -->
<Property key="mapQuest.enableLayer.arial">false</Property> <!-- show MapQuest Arial map layer -->
<!-- miscellaneous -->
<Property key="map.fillFrame">false</Property> <!-- expand map to fill page frame -->
<!-- <Property key="map.width">-1</Property> -->
<!-- <Property key="map.height">-1</Property> -->
<Property key="info.showAltitude">true</Property> <!-- show altitude in info-balloon -->
<Property key="info.showSpeed">true</Property> <!-- show speed in info-balloon -->
<Property key="jsmap.showMapLoading">true</Property> <!-- show "Loading Map Points" when loading data -->
<!-- <Property key="jsmap.showMapLoading.image">./images/MapLoading.gif</Property> -->
<Property key="details.combineSpeedHeading">false</Property> <!-- combine speed/heading into single column -->
<!-- default zoom/location -->
<Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
<Property key="default.lat">39.0000</Property> <!-- default latitude when no pushpins are displayed -->
<Property key="default.lon">-96.5000</Property> <!-- default longitude when no pushpins are displayed -->
<!-- Geozone map size/config -->
<!-- <Property key="zone.map.width">-1</Property> -->
<!-- <Property key="zone.map.height">540</Property> -->
<Property key="zone.map.multipoint">false</Property> <!-- [true|false] false==1 point, true=6 points -->
<Property key="zone.map.polygon">true</Property> <!-- [true|false] display polygon option -->
<Property key="zone.map.corridor">false</Property> <!-- [true|false] display corridor option (not supported) -->
<!-- include target geozones on map (a pushpin must be in the Geozone for it to be displayed) -->
<Property key="map.includeGeozones">false</Property>
<!-- route line -->
<Property key="map.routeLine">true</Property> <!-- include travel route line -->
<Property key="map.routeLine.color">#FF2222</Property> <!-- include travel route line color -->
<Property key="map.routeLine.arrows">false</Property> <!-- NOT SUPPORTED -->
<!-- replay -->
<Property key="replay.enable">true</Property> <!-- enable/disable replay -->
<Property key="replay.interval">1200</Property> <!-- replay interval (in milliseconds, values < 30 are interpreted as seconds) -->
<Property key="replay.singlePushpin">false</Property> <!-- show only single pushpin during replay -->
<!-- enable auto-update -->
<Property key="auto.enable">true</Property> <!-- enable/disable auto-update -->
<Property key="auto.interval">20</Property> <!-- auto-update interval (in seconds) -->
<Property key="auto.count">10</Property> <!-- maximum number of auto-updates -->
<Property key="auto.skipRadius">10</Property> <!-- skip nearby points radius (meters) -->
<!-- use default pushpins -->
<Pushpins includeDefault="true"/>
<!-- legend -->
<Legend type="device" includeDefault="true"/>
<Legend type="fleet" includeDefault="true"/>
<!--
=== The IconSelector tag provdes an ability to select what icon to display for specific types of
=== events. An enabled "RuleFactory" implementation is required to evaluate the icon selector value.
=== The "RuleFactory" 'interface' may be viewed in the source module "org.opengts.db.RuleFactory.java", from
=== which an 'implementation' will need to be created and installed into "Device.setRuleFactory(ruleFactory)".
===
=== A commercial "RuleFactory" implementation is available which can evaluate 'selectors' like the following:
=== - ((mph<5.0)?"red":(mph<20.0)?"yellow":(mph<=65.0)?"green":"arrow")
=== If the vehicle speed is < 5mph, display the RED pushpin, else if < 20mph, display the YELLOW pushpin,
=== else if <= 65mph, display the GREEN pushpin, otherwise display the "arrow" icon (when over 65mph).
=== - ($INZONE?"white":(mph<5.0)?"red":"green")
=== If in any defined GeoZone, display the WHITE pushpin, else if < 5mph, display the RED pushpin,
=== otherwise display the GREEN pushpin.
=== - (($DORMANT>=3600)?"red":"green")
=== If vehicle has not moved for 3600 seconds, display the RED pushpin, otherwise display the GREEN pushpin.
=== - (($WEEKDAY&&!$INZONE("home"))?"red":"green")
=== If it is a weekday and the vehicle is outside defined GeoZone "home", display the RED pushpin,
=== otherwise display the GREEN pushpin.
=== - ($BIT(input,1)?"purple":"white")
=== If digital input 1 is 'ON' ('input' is a bitmask, and '1' represents the second bit), display
=== the PURPLE pushpin, otherwise display the WHITE pushpin.
=== This RuleFactory can also be used to analyze incoming events and send notification, such as an email,
=== when installed as an Event analysis rule. Rule functions, such as $ARRIVE, $DEPART, etc, are available
=== for this purpose. For more information, please contact us for details.
===
=== The default icon selector (when no RuleFactory is available, or the 'iconSelector' has not been
=== specified) is implemented in Java, and is equivalent to the following:
=== - ($DIN?"orange":(speed<8)?"red":(speed<32)?"yellow":"green")
=== If the StatusCode is any digital input, display the ORANGE pushpin, else if the speed is less
=== than 8 km/h, display the RED pushpin, else if the speed is less than 32 km/h, display the
=== YELLOW pushpin, otherwise display the GREEN pushpin".
=== This default 'selector' is implemented in the method "getDefaultMapIconIndex(...)" in the EventData class.
=== -->
<!-- example icon selectors below (a valid 'RuleFactory' implementaion/installation required):
<IconSelector type="device" ruleFactoryName="GTSRulesEngine,SecureENRE,ENRE"><![CDATA[
((mph<5.0)?"red":(mph<20.0)?"yellow":(mph<70.0)?"green":"greendot")
]]></IconSelector>
<IconSelector type="fleet" ruleFactoryName="GTSRulesEngine,SecureENRE,ENRE"><![CDATA[
(isLast?$DEVICON("bluedot"):(mph<5)?"stop":(mph<20)?"yellowh":"greenh")
]]></IconSelector>
-->
</MapProvider>
<!-- =============================================
=== OpenLayers [http://www.openlayers.org] using GeoServer
-->
<MapProvider name="geoServer"
active="${Domain.MapProvider.active=false}"
class="org.opengts.war.maps.jsmap.OpenLayers"
rtPropPrefix="Domain.MapProvider.">
<Property key="map.fillFrame">false</Property> <!-- expand map to fill page frame -->
<Property key="geoServer.enable">true</Property> <!-- must be "true" for GeoServer support -->
<Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
<Property key="default.lat">40.7000</Property> <!-- default latitude when no pushpins are displayed -->
<Property key="default.lon">-74.5000</Property> <!-- default longitude when no pushpins are displayed -->
<!-- GeoServer vars:
=== Set these values to match your GeoServer mapping service
=== (The JavaScript module "war/track/js/maps/OpenLayers.js" may also need some customization to support your map files)
-->
<Property key="geoServer.url">http://localhost:8085/geoserver/wms</Property> <!-- point this to your GeoServer service -->
<Property key="geoServer.maxResolution">0.0007907421875</Property> <!-- Maximum resolution -->
<Property key="geoServer.size">{ width:431, height:550 }</Property> <!-- Image width/height -->
<Property key="geoServer.projection">EPSG:4326</Property> <!-- Projection -->
<Property key="geoServer.layers">tiger-ny</Property> <!-- Map dataset -->
<Property key="geoServer.bounds">{ left:-74.047185, bottom:40.679648, right:-73.907005, top:40.882078 }</Property>
<!-- use default pushpins -->
<Pushpins includeDefault="true"/>
<!-- legend -->
<Legend type="device" includeDefault="true"/>
<Legend type="fleet" includeDefault="true"/>
</MapProvider>
<!-- =============================================
=== Leaflet: OpenStreetMap
=== When using an OpenStreetMaps tile-server, please comply with their "Tile Usage Policy":
=== http://wiki.openstreetmap.org/wiki/Tile_usage_policy
-->
<MapProvider name="leaflet_osm"
active="${Domain.MapProvider.active=false}"
class="org.opengts.war.maps.jsmap.Leaflet"
rtPropPrefix="Domain.MapProvider.">
<!-- override location of Leaflet client-side JavaScript
=== If you wish to keep your own local cache of the Leaflet.js JavaScript
=== Copy the Leaflet.js module to a local server, then change this link
=== to point to your local cached version.
-->
<Property key="leaflet.js"></Property>
<!-- leaflet properties -->
<Property key="leaflet.attributionPrefix"></Property>
<Property key="leaflet.addOpenCycleMap">true</Property>
<!-- miscellaneous -->
<Property key="map.maxCreationAge">0</Property> <!-- max creation age (in seconds) -->
<Property key="map.fillFrame">true</Property> <!-- expand map to fill page frame -->
<!-- <Property key="map.width">-1</Property> -->
<!-- <Property key="map.height">-1</Property> -->
<Property key="info.showAltitude">true</Property> <!-- show altitude in info balloon -->
<Property key="info.showSpeed">true</Property> <!-- show speed in info-balloon -->
<Property key="info.inclBlankAddress">true</Property> <!-- show blank addresses in info balloon -->
<Property key="info.showOptionalFields">true</Property> <!-- show optional-fields in info balloon -->
<Property key="info.inclBlankOptFields">true</Property> <!-- show blank optional-fields in info balloon -->
<Property key="jsmap.showMapLoading">true</Property> <!-- show "Loading Map Points" when loading data -->
<!-- <Property key="jsmap.showMapLoading.image">./images/MapLoading.gif</Property> -->
<Property key="details.combineSpeedHeading">false</Property> <!-- combine speed/heading into single column -->
<!-- default zoom/location -->
<Property key="pushpin.zoom">14</Property> <!-- default zoom when pushpins are displayed -->
<Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
<Property key="default.lat">39.0000</Property> <!-- default latitude when no pushpins are displayed -->
<Property key="default.lon">-96.5000</Property> <!-- default longitude when no pushpins are displayed -->
<!-- Geozone map size/config -->
<Property key="zone.map.width">-1</Property>
<Property key="zone.map.height">580</Property>
<Property key="zone.map.multipoint">true</Property> <!-- [true|false] false==1 point, true=6 points -->
<Property key="zone.map.polygon">true</Property> <!-- [true|false] display polygon option -->
<Property key="zone.map.corridor">true</Property> <!-- [true|false] display corridor option (may not be supported) -->
<!-- include target geozones on map (a pushpin must be in the Geozone for it to be displayed) -->
<Property key="map.includeGeozones">true</Property>
<!-- route line -->
<Property key="map.routeLine">true</Property> <!-- include travel route line -->
<Property key="map.routeLine.color">#FF2222</Property> <!-- include travel route line color -->
<Property key="map.routeLine.arrows">false</Property> <!-- NOT SUPPORTED (in OpenLayers) -->
<!-- pushpins -->
<Property key="map.showPushpins">true</Property> <!-- show pushpins on map -->
<Property key="map.maxPushpins">2000</Property>
<Property key="map.maxPushpins.device">2000</Property>
<Property key="map.maxPushpins.fleet">2000</Property>
<Property key="map.maxPushpins.report">2000</Property>
<!-- replay -->
<Property key="replay.enable">true</Property> <!-- enable/disable replay -->
<Property key="replay.interval">1000</Property> <!-- replay interval (in milliseconds, values < 30 are interpreted as seconds) -->
<Property key="replay.singlePushpin">false</Property> <!-- show only single pushpin during replay -->
<!-- auto update -->
<Property key="auto.enable">true</Property> <!-- enable/disable auto-update -->
<Property key="auto.interval">30</Property> <!-- auto-update interval (in seconds) -->
<Property key="auto.count">10</Property> <!-- maximum number of auto-updates -->
<Property key="auto.skipRadius">10</Property> <!-- skip nearby points radius (meters) -->
<!-- use default pushpins -->
<Pushpins includeDefault="true"/>
<!--
=== The Legend tags contain icons/descriptions which will be displayed on the TrackMap map display page.
=== ("IconSelector" requires an installed/active RuleFactory instance)
=== -->
<Legend type="device" includeDefault="true"/>
<Legend type="fleet" includeDefault="true"/>
</MapProvider>
<!-- =============================================
=== Leaflet: ESRI
=== - https://esri.github.io/esri-leaflet/examples/
=== - https://developers.arcgis.com/
=== Terms of service: (make sure map usage complies with their terms)
=== - https://github.com/esri/esri-leaflet#terms
=== (developer account required)
-->
<MapProvider name="leaflet_esri"
active="${Domain.MapProvider.active=false}"
class="org.opengts.war.maps.jsmap.Leaflet"
rtPropPrefix="Domain.MapProvider.">
<!-- override location of Leaflet client-side CSS/JavaScript
=== If you wish to keep your own local cache of the Leaflet.js JavaScript
=== Copy the Leaflet.js module to a local server, then change this link
=== to point to your local cached version.
-->
<Property key="leaflet.css"><![CDATA[
https://cdn.jsdelivr.net/leaflet/1.0.0-rc.3/leaflet.css
]]></Property>
<Property key="leaflet.js" ><![CDATA[
https://cdn.jsdelivr.net/leaflet/1.0.0-rc.3/leaflet-src.js
https://cdn.jsdelivr.net/leaflet.esri/2.0.2/esri-leaflet.js
]]></Property>
<!-- leaflet properties -->
<Property key="leaflet.attributionPrefix">blank</Property>
<Property key="leaflet.addOpenStreetMap">false</Property>
<Property key="leaflet.addOpenCycleMap">false</Property>
<!-- ESRI config -->
<Property key="javascript.inline" trim="false"><![CDATA[
function _createEsriMap(mapElem) {
var map = L.map(mapElem.id);
L.esri.basemapLayer("Topographic").addTo(map);
return map;
};
CREATE_MAP_CALLBACK = _createEsriMap;
]]></Property>
<!-- miscellaneous -->
<Property key="map.maxCreationAge">0</Property> <!-- max creation age (in seconds) -->
<Property key="map.fillFrame">true</Property> <!-- expand map to fill page frame -->
<!-- <Property key="map.width">-1</Property> -->
<!-- <Property key="map.height">-1</Property> -->
<Property key="info.showAltitude">true</Property> <!-- show altitude in info balloon -->
<Property key="info.showSpeed">true</Property> <!-- show speed in info-balloon -->
<Property key="info.inclBlankAddress">true</Property> <!-- show blank addresses in info balloon -->
<Property key="info.showOptionalFields">true</Property> <!-- show optional-fields in info balloon -->
<Property key="info.inclBlankOptFields">true</Property> <!-- show blank optional-fields in info balloon -->
<Property key="jsmap.showMapLoading">true</Property> <!-- show "Loading Map Points" when loading data -->
<!-- <Property key="jsmap.showMapLoading.image">./images/MapLoading.gif</Property> -->
<Property key="details.combineSpeedHeading">false</Property> <!-- combine speed/heading into single column -->
<!-- default zoom/location -->
<Property key="pushpin.zoom">14</Property> <!-- default zoom when pushpins are displayed -->
<Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
<Property key="default.lat">39.0000</Property> <!-- default latitude when no pushpins are displayed -->
<Property key="default.lon">-96.5000</Property> <!-- default longitude when no pushpins are displayed -->
<!-- Geozone map size/config -->
<Property key="zone.map.width">-1</Property>
<Property key="zone.map.height">580</Property>
<Property key="zone.map.multipoint">true</Property> <!-- [true|false] false==1 point, true=6 points -->
<Property key="zone.map.polygon">true</Property> <!-- [true|false] display polygon option -->
<Property key="zone.map.corridor">true</Property> <!-- [true|false] display corridor option (may not be supported) -->
<!-- include target geozones on map (a pushpin must be in the Geozone for it to be displayed) -->
<Property key="map.includeGeozones">true</Property>
<!-- route line -->
<Property key="map.routeLine">true</Property> <!-- include travel route line -->
<Property key="map.routeLine.color">#FF2222</Property> <!-- include travel route line color -->
<Property key="map.routeLine.arrows">false</Property> <!-- NOT SUPPORTED (in OpenLayers) -->
<!-- pushpins -->
<Property key="map.showPushpins">true</Property> <!-- show pushpins on map -->
<Property key="map.maxPushpins">2000</Property>
<Property key="map.maxPushpins.device">2000</Property>
<Property key="map.maxPushpins.fleet">2000</Property>
<Property key="map.maxPushpins.report">2000</Property>
<!-- replay -->
<Property key="replay.enable">true</Property> <!-- enable/disable replay -->
<Property key="replay.interval">1000</Property> <!-- replay interval (in milliseconds, values < 30 are interpreted as seconds) -->
<Property key="replay.singlePushpin">false</Property> <!-- show only single pushpin during replay -->
<!-- auto update -->
<Property key="auto.enable">true</Property> <!-- enable/disable auto-update -->
<Property key="auto.interval">30</Property> <!-- auto-update interval (in seconds) -->
<Property key="auto.count">10</Property> <!-- maximum number of auto-updates -->
<Property key="auto.skipRadius">10</Property> <!-- skip nearby points radius (meters) -->
<!-- use default pushpins -->
<Pushpins includeDefault="true"/>
<!--
=== The Legend tags contain icons/descriptions which will be displayed on the TrackMap map display page.
=== ("IconSelector" requires an installed/active RuleFactory instance)
=== -->
<Legend type="device" includeDefault="true"/>
<Legend type="fleet" includeDefault="true"/>
</MapProvider>
<!-- =============================================
=== Leaflet: MapBox
=== - https://www.mapbox.com/help/#get-started-with-mapbox