Commit db85c9d8 by Mac Stephens

Add markers for directed patrol, missing person, and agency assist; update view…

Add markers for directed patrol, missing person, and agency assist; update view on map button text to map, add new panels for complaints, units, and map, functionality for loading and displaying them, add zoom for locate button
parent 0b3cc8d2
......@@ -21,3 +21,7 @@ emiMobileServer/Source/__recovery/
*.tvsconfig
*.dxsettings
*.zip
*.log
*.dll
[Settings]
LogFileNum=616
LogFileNum=622
webClientVersion=0.1.0
{
"type": "FeatureCollection",
"name": "BFDDistrict",
"crs": {
"type": "name",
"properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" }
},
"features": [
{
"type": "Feature",
"properties": {
"SBE4_ID": 0,
"NAME": "District A",
"FROMLEFT": 0,
"TOLEFT": 0,
"FROMRIGHT": 0,
"TORIGHT": 0,
"DIRECTION": null,
"STREET": null,
"ST_TYPE": null,
"ST_PREFIX": null,
"ST_SUFFIX": null,
"CITY_LEFT": null,
"CITY_RIGHT": null,
"LO_X_PRE": null,
"LO_X_NAME": null,
"LO_X_TYPE": null,
"LO_X_SUF": null,
"HI_X_PRE": null,
"HI_X_NAME": null,
"HI_X_TYPE": null,
"HI_X_SUF": null,
"LHS": null,
"RHS": null,
"BDY_LEFT": null,
"BDY_RIGHT": null,
"ST_CODE": null,
"RECNUM_L": 0,
"RECNUM_R": 0
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-78.838387137024, 42.832075532899],
[-78.853850691821, 42.832230091893],
[-78.853737429899, 42.832234856975],
[-78.860241732413, 42.832294613744],
[-78.860459439674, 42.832938132033],
[-78.860190421983, 42.832929527531],
[-78.860155470603, 42.832824829664],
[-78.855806324216, 42.833083069854],
[-78.846490562324, 42.835714830049],
[-78.846697006768, 42.83615097977],
[-78.856002563227, 42.833623324546],
[-78.85698971079, 42.833542425341],
[-78.857821381746, 42.833711928632],
[-78.85892584984, 42.833709446711],
[-78.859885913544, 42.833825635625],
[-78.860510244536, 42.833774384667],
[-78.860599277961, 42.83461346044],
[-78.860424602917, 42.835050335751],
[-78.860914587935, 42.836444937288],
[-78.861114200497, 42.837517921006],
[-78.86072747651, 42.837748572056],
[-78.860208139668, 42.83792320884],
[-78.859529918974, 42.837898266629],
[-78.858749939571, 42.838047629193],
[-78.857859282657, 42.838358284996],
[-78.858447641833, 42.839872795158],
[-78.862194462024, 42.838854573689],
[-78.862368418014, 42.839087210413],
[-78.86302074272, 42.838947222933],
[-78.863106338992, 42.839118507609],
[-78.860324953696, 42.839972621056],
[-78.859952490741, 42.840269861797],
[-78.859665562823, 42.840727070976],
[-78.859668328493, 42.841243089399],
[-78.860922447904, 42.844447418843],
[-78.863860275853, 42.843617088448],
[-78.868228333525, 42.849960310468],
[-78.867165715727, 42.850715292637],
[-78.867039153394, 42.850663899009],
[-78.866998777206, 42.850499280724],
[-78.867885595735, 42.849934067689],
[-78.865525035556, 42.846452673434],
[-78.865421526897, 42.846446328014],
[-78.862380343476, 42.847225843162],
[-78.862233018249, 42.847426763136],
[-78.863712519326, 42.849983417183],
[-78.863792155537, 42.850195661579],
[-78.864115985814, 42.850370305264],
[-78.864793099389, 42.850736668614],
[-78.865019994986, 42.851222808086],
[-78.865203288944, 42.851346175252],
[-78.865418351834, 42.851996977574],
[-78.865348746846, 42.852374777487],
[-78.865440605204, 42.852584631042],
[-78.865790769078, 42.852907890229],
[-78.866274859581, 42.852953169243],
[-78.86640433204, 42.85313051635],
[-78.871777191572, 42.851682049546],
[-78.872299658388, 42.852561096379],
[-78.869896117, 42.85316813362],
[-78.869413604908, 42.853364499665],
[-78.86923626682, 42.853625870875],
[-78.869527443029, 42.854090919336],
[-78.872752507273, 42.853116920733],
[-78.8747551557, 42.855987790187],
[-78.875620587387, 42.857508276749],
[-78.875835547009, 42.858207935024],
[-78.876115317471, 42.858710724867],
[-78.876063643211, 42.859011599317],
[-78.875197571559, 42.859341018387],
[-78.873994573539, 42.859704900273],
[-78.873465371999, 42.859994522933],
[-78.873790188293, 42.860163306559],
[-78.873847481232, 42.860251822706],
[-78.873726590067, 42.860321583656],
[-78.873825998431, 42.860542386587],
[-78.874027446139, 42.860550278919],
[-78.874341251583, 42.860855939532],
[-78.87454945321, 42.861209714045],
[-78.87472339557, 42.861118723131],
[-78.874905300115, 42.86081658249],
[-78.87493725899, 42.860594439557],
[-78.874866909481, 42.860407005219],
[-78.875282627378, 42.860176317084],
[-78.875998397842, 42.859905244585],
[-78.87639496812, 42.859866159637],
[-78.876669097335, 42.859962864859],
[-78.87682262521, 42.860091091278],
[-78.87766383098, 42.861495176391],
[-78.877689378899, 42.861671233673],
[-78.877931850605, 42.862168111037],
[-78.878328640046, 42.862760112434],
[-78.879302895935, 42.863891510121],
[-78.879617213036, 42.864197155654],
[-78.880442303415, 42.865326871333],
[-78.881361598102, 42.86626014682],
[-78.882007749126, 42.866723552826],
[-78.882568024011, 42.867361415524],
[-78.882657581186, 42.867368041143],
[-78.882728322447, 42.867533518335],
[-78.879271279384, 42.868692708568],
[-78.880007931603, 42.869552040206],
[-78.883671173651, 42.868406691679],
[-78.884018535675, 42.868882874038],
[-78.880440305206, 42.870063339647],
[-78.880877390499, 42.870583027859],
[-78.881144151456, 42.870493672949],
[-78.881499222557, 42.870635257996],
[-78.88463354695, 42.869740949565],
[-78.884814311297, 42.869995655966],
[-78.884757114393, 42.870219948144],
[-78.884319316015, 42.870423116644],
[-78.884019678393, 42.870463176266],
[-78.883500573801, 42.870632429409],
[-78.883468463636, 42.870741754963],
[-78.883486982307, 42.870906683402],
[-78.883835660339, 42.871651762449],
[-78.885285262012, 42.870950658865],
[-78.885487103748, 42.870936749029],
[-78.887376918968, 42.873193220793],
[-78.887939622083, 42.873732442122],
[-78.889282300581, 42.87536370144],
[-78.889489136047, 42.875508232234],
[-78.889897411398, 42.875648792694],
[-78.890245227001, 42.875821925443],
[-78.890399887312, 42.875977055032],
[-78.888474793102, 42.876916321925],
[-78.888131601554, 42.876924438777],
[-78.888090073594, 42.877204083196],
[-78.889253031746, 42.877274208568],
[-78.889324347935, 42.876983852482],
[-78.89012026166, 42.876672006856],
[-78.890590419618, 42.877534382879],
[-78.890274775723, 42.877675946189],
[-78.883209821481, 42.877227742645],
[-78.882997851584, 42.877963247454],
[-78.882331356132, 42.877921773847],
[-78.880211115543, 42.877105826401],
[-78.878063001936, 42.874560520597],
[-78.87761875992, 42.874860394611],
[-78.87739116423, 42.874708442709],
[-78.877154203891, 42.874522954926],
[-78.877041132833, 42.87443444513],
[-78.876857245569, 42.874325934669],
[-78.875944912694, 42.873900429412],
[-78.875385098763, 42.873649467392],
[-78.875185175764, 42.873594478361],
[-78.873430179962, 42.873300469188],
[-78.872846087765, 42.873197195743],
[-78.871787810494, 42.873015455012],
[-78.871448816872, 42.874004473189],
[-78.871137816323, 42.874971473266],
[-78.870825824146, 42.875961863549],
[-78.87071082312, 42.876297507302],
[-78.870545294002, 42.876812392533],
[-78.87012675213, 42.878120463116],
[-78.869888818093, 42.878833421133],
[-78.869671786943, 42.879524422957],
[-78.869473813735, 42.88014049698],
[-78.869417830536, 42.880384502884],
[-78.869359914553, 42.880805369642],
[-78.86930583926, 42.880991454836],
[-78.869111796394, 42.881578494167],
[-78.868433143468, 42.88146271873],
[-78.867091777471, 42.881237444842],
[-78.865019540796, 42.880869880433],
[-78.864448244017, 42.880770911509],
[-78.862363826169, 42.880413443809],
[-78.859947732805, 42.879992459499],
[-78.857519796337, 42.879571463324],
[-78.85545182864, 42.879207425187],
[-78.855315817569, 42.879156459036],
[-78.855229740518, 42.879091473796],
[-78.855125724151, 42.878972440242],
[-78.85476281152, 42.87904050109],
[-78.854350761419, 42.879021440945],
[-78.852038778565, 42.878603441437],
[-78.848966756956, 42.87806647621],
[-78.847320777303, 42.877777488169],
[-78.845691773401, 42.8774934869],
[-78.844083725836, 42.877215511925],
[-78.843116331165, 42.877037246758],
[-78.842657768253, 42.876975511011],
[-78.842226789762, 42.876921478187],
[-78.842102798081, 42.876882426809],
[-78.841924774804, 42.87679143919],
[-78.841841719263, 42.876729493288],
[-78.841002665701, 42.87733373089],
[-78.839849725047, 42.878175436557],
[-78.839663766236, 42.878315478662],
[-78.839459169308, 42.878540460463],
[-78.839378110432, 42.878664463949],
[-78.839278735077, 42.878869446539],
[-78.839219180086, 42.879127463144],
[-78.839210794147, 42.879295445619],
[-78.838554145879, 42.879180497973],
[-78.838381120842, 42.879140478808],
[-78.838195815273, 42.879081473995],
[-78.837955994736, 42.878972255926],
[-78.837937335159, 42.878963894734],
[-78.837628775762, 42.878837510313],
[-78.836857082768, 42.878545438199],
[-78.836641328813, 42.878462529824],
[-78.836299585313, 42.878331204576],
[-78.835850124332, 42.878158483281],
[-78.835630163339, 42.878074305755],
[-78.835307494646, 42.877950821461],
[-78.834959151205, 42.877817510027],
[-78.834807648389, 42.877759125792],
[-78.834618882013, 42.877686379955],
[-78.834113186071, 42.877491496487],
[-78.833866105881, 42.877396226584],
[-78.833626675032, 42.877303904763],
[-78.833305782053, 42.877180171466],
[-78.833253799018, 42.877159496078],
[-78.833181357383, 42.877132045216],
[-78.832932180398, 42.877035441934],
[-78.832276837288, 42.877243931087],
[-78.832036445867, 42.877320407231],
[-78.831335606235, 42.877543362784],
[-78.831071875995, 42.877628607022],
[-78.830853608096, 42.877700729734],
[-78.830705681201, 42.877749609325],
[-78.830528427037, 42.877808179044],
[-78.830359403095, 42.877864029158],
[-78.830159467438, 42.877930092992],
[-78.829992859565, 42.877985144259],
[-78.829828967624, 42.878039296413],
[-78.829656408374, 42.878096313487],
[-78.829465129698, 42.878159514574],
[-78.829375987434, 42.878189273131],
[-78.829166342393, 42.878259797797],
[-78.828904786073, 42.878346569949],
[-78.828896793901, 42.878349554229],
[-78.828797160425, 42.878396448091],
[-78.828730171342, 42.878447492151],
[-78.828713176909, 42.878465455632],
[-78.82866111356, 42.87852048536],
[-78.828647420148, 42.878538401248],
[-78.828535125202, 42.878687449701],
[-78.828463149522, 42.878779490571],
[-78.828392273893, 42.878878605699],
[-78.828273675419, 42.879044455652],
[-78.826862917423, 42.881026763371],
[-78.825647160089, 42.882729885498],
[-78.824332711012, 42.884573462151],
[-78.824216028266, 42.884763118207],
[-78.824179869476, 42.884822142673],
[-78.824166045045, 42.88484986621],
[-78.824156097125, 42.88487244492],
[-78.821972676423, 42.884852707225],
[-78.81827212607, 42.884823497586],
[-78.815409150119, 42.884809508503],
[-78.814165109288, 42.884796458637],
[-78.813828093724, 42.884779520268],
[-78.809706080826, 42.88474948974],
[-78.808658190875, 42.884738486546],
[-78.807590161312, 42.884728504356],
[-78.80623831238, 42.884712359379],
[-78.805060028174, 42.884693250886],
[-78.803761592573, 42.884695758161],
[-78.803459240209, 42.884693623015],
[-78.802852454229, 42.884675477382],
[-78.802345077456, 42.884657453489],
[-78.802090163935, 42.884669443892],
[-78.801805336337, 42.884712589018],
[-78.801378712226, 42.884829570699],
[-78.800986154907, 42.884946466224],
[-78.800924150017, 42.884981482127],
[-78.800859988997, 42.885093765527],
[-78.800397559596, 42.884912263433],
[-78.799557595179, 42.884586838771],
[-78.799658672965, 42.87769575153],
[-78.799682744158, 42.874732446588],
[-78.799861541167, 42.87169439898],
[-78.799873638741, 42.871243947578],
[-78.799550002126, 42.871238214429],
[-78.799513784204, 42.868612501971],
[-78.799618331287, 42.867302828203],
[-78.799991814303, 42.867168185576],
[-78.800048798627, 42.864450385523],
[-78.800375905971, 42.86446661364],
[-78.800017680602, 42.864447563695],
[-78.800433758119, 42.854496443411],
[-78.80059959599, 42.847550733329],
[-78.800655427137, 42.845468145593],
[-78.799187785247, 42.846399474809],
[-78.796806728002, 42.845495442884],
[-78.798577418133, 42.843028113686],
[-78.798064610303, 42.842863756577],
[-78.797631017255, 42.842753123178],
[-78.797040234805, 42.842350505859],
[-78.79673500803, 42.841753100231],
[-78.796191094222, 42.841212705438],
[-78.79513315147, 42.840894295249],
[-78.796644744742, 42.838362490717],
[-78.800201774647, 42.839310463452],
[-78.80018743004, 42.84106421611],
[-78.800785182129, 42.841265102148],
[-78.800859763205, 42.839613449891],
[-78.800874798252, 42.838957470425],
[-78.800980865813, 42.835535328079],
[-78.800996801186, 42.834491343309],
[-78.801021874839, 42.833566356021],
[-78.801043863894, 42.832812363454],
[-78.801045839599, 42.832011315938],
[-78.805608882207, 42.832031322248],
[-78.807344918725, 42.832039344114],
[-78.808463769024, 42.831909471765],
[-78.808731740047, 42.831904506443],
[-78.809587904234, 42.83203936318],
[-78.812551922112, 42.832045370907],
[-78.813701917468, 42.832046364172],
[-78.817658297095, 42.831995999066],
[-78.819559584959, 42.831994808413],
[-78.820760107871, 42.83199512421],
[-78.823901837479, 42.832074301968],
[-78.823944015052, 42.831228744068],
[-78.823960416862, 42.830495646696],
[-78.824000784952, 42.826846471702],
[-78.830267729054, 42.826903061057],
[-78.830275875014, 42.826608245422],
[-78.831685191405, 42.826663505442],
[-78.832878002386, 42.826790836309],
[-78.832974780511, 42.826016466326],
[-78.834676768144, 42.826196466018],
[-78.835420448646, 42.829079584448],
[-78.836117518101, 42.830782527924],
[-78.836722005346, 42.832057621575],
[-78.838387137024, 42.832075532899]
]
]
]
}
},
{
"type": "Feature",
"properties": {
"SBE4_ID": 0,
"NAME": "District B",
"FROMLEFT": 0,
"TOLEFT": 0,
"FROMRIGHT": 0,
"TORIGHT": 0,
"DIRECTION": null,
"STREET": null,
"ST_TYPE": null,
"ST_PREFIX": null,
"ST_SUFFIX": null,
"CITY_LEFT": null,
"CITY_RIGHT": null,
"LO_X_PRE": null,
"LO_X_NAME": null,
"LO_X_TYPE": null,
"LO_X_SUF": null,
"HI_X_PRE": null,
"HI_X_NAME": null,
"HI_X_TYPE": null,
"HI_X_SUF": null,
"LHS": null,
"RHS": null,
"BDY_LEFT": null,
"BDY_RIGHT": null,
"ST_CODE": null,
"RECNUM_L": 0,
"RECNUM_R": 0
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-78.901972526359, 42.896664791974],
[-78.901131285979, 42.897090715518],
[-78.901901480504, 42.897816043979],
[-78.902051317574, 42.89846729643],
[-78.90180347734, 42.898624728884],
[-78.901972082312, 42.898933974204],
[-78.90214314227, 42.899085783721],
[-78.902176699783, 42.899442050512],
[-78.902075796211, 42.899777770596],
[-78.902024570735, 42.900429924554],
[-78.902112118018, 42.901394838057],
[-78.90217607653, 42.901765424465],
[-78.902164350397, 42.902206190291],
[-78.901859912385, 42.901975523729],
[-78.901649339653, 42.902124964339],
[-78.901934469898, 42.90277378319],
[-78.901965948413, 42.903359854635],
[-78.901684108287, 42.906359451826],
[-78.901741038433, 42.914685100855],
[-78.901761963356, 42.914852075348],
[-78.901723381735, 42.915191026387],
[-78.901396143886, 42.915195512593],
[-78.900275140433, 42.915212520079],
[-78.899449182894, 42.915203515962],
[-78.898437191618, 42.915150518532],
[-78.897505146599, 42.915106492108],
[-78.895997195989, 42.915137461392],
[-78.894609186831, 42.915176479281],
[-78.893237157634, 42.915212504174],
[-78.890409117604, 42.915285473509],
[-78.888319139194, 42.915333448142],
[-78.886905133314, 42.915362452163],
[-78.886093194365, 42.915385466685],
[-78.885650210873, 42.915402507303],
[-78.884527132578, 42.915431495596],
[-78.88340815357, 42.915459433177],
[-78.882638222415, 42.915476494069],
[-78.882043147094, 42.915490492941],
[-78.880343168068, 42.915487439724],
[-78.87866314958, 42.915476481478],
[-78.877051108331, 42.91546148206],
[-78.873702206024, 42.91543348271],
[-78.87312418866, 42.915426508701],
[-78.86917914143, 42.915395435666],
[-78.866845212851, 42.915370510536],
[-78.865498140432, 42.915359438774],
[-78.864418188919, 42.9153534561],
[-78.864525138119, 42.915222437713],
[-78.864641125078, 42.914975505665],
[-78.864998170713, 42.913943492875],
[-78.865492168965, 42.912512484175],
[-78.865916195666, 42.911257431396],
[-78.862418134656, 42.911216496868],
[-78.859583174394, 42.91118043877],
[-78.856792143888, 42.911149490723],
[-78.855878177135, 42.911142508722],
[-78.854980187887, 42.911132459479],
[-78.853977165316, 42.911121442554],
[-78.853979150585, 42.910609513246],
[-78.853980210474, 42.910149476487],
[-78.853980193261, 42.909393434088],
[-78.85397920856, 42.908376496011],
[-78.85397918113, 42.908248463328],
[-78.853978093094, 42.907461483577],
[-78.853977155811, 42.906594455863],
[-78.853973132821, 42.905652440732],
[-78.853980179787, 42.903839480881],
[-78.853975108355, 42.902087433682],
[-78.853968188792, 42.900207505922],
[-78.853969206471, 42.899277475061],
[-78.853967177985, 42.898410483794],
[-78.853966120844, 42.897806458064],
[-78.853967150184, 42.897473464897],
[-78.853969201828, 42.897068497544],
[-78.853971149172, 42.896787515124],
[-78.853972158684, 42.896601463196],
[-78.853971183342, 42.896175439568],
[-78.853966202336, 42.89518645595],
[-78.853966208391, 42.894057475969],
[-78.853972198621, 42.893022473738],
[-78.85397215288, 42.891845505339],
[-78.853971132288, 42.891051498739],
[-78.853968122656, 42.889799449431],
[-78.853956166327, 42.887828481058],
[-78.853939204278, 42.885160430164],
[-78.853940148705, 42.884910454099],
[-78.853931180171, 42.883356438652],
[-78.853921126573, 42.881863504588],
[-78.85391517305, 42.880646487913],
[-78.853917199651, 42.880433480369],
[-78.85395309966, 42.880186467835],
[-78.854097173902, 42.879779502556],
[-78.854349132219, 42.879021444802],
[-78.854761182319, 42.879040504953],
[-78.855124094953, 42.87897244411],
[-78.855228111317, 42.879091477665],
[-78.855314188366, 42.879156462907],
[-78.855450199435, 42.879207429059],
[-78.857518167123, 42.879571467226],
[-78.859946103581, 42.879992463436],
[-78.862362196934, 42.880413447779],
[-78.864776169935, 42.880827428478],
[-78.867090148214, 42.88123744888],
[-78.867869146059, 42.881367470237],
[-78.869110167129, 42.881578498234],
[-78.869306971178, 42.880980507995],
[-78.869358156578, 42.880777504922],
[-78.869416201303, 42.880384506955],
[-78.869472184508, 42.880140501052],
[-78.869670157732, 42.879524427031],
[-78.869887188901, 42.878833425211],
[-78.870125122957, 42.878120467197],
[-78.870709193994, 42.876297511392],
[-78.870828055069, 42.875949644608],
[-78.871136187233, 42.874971477361],
[-78.871447187807, 42.874004477288],
[-78.871786181455, 42.873015459116],
[-78.872859153995, 42.873199435768],
[-78.873430179962, 42.873300469188],
[-78.87433320954, 42.873456426196],
[-78.875202337648, 42.873599089672],
[-78.875385098763, 42.873649467392],
[-78.875932102761, 42.873894462155],
[-78.876864163166, 42.874330017455],
[-78.877041132833, 42.87443444513],
[-78.87739116423, 42.874708442709],
[-78.877619139329, 42.874860647499],
[-78.878061372857, 42.874560524791],
[-78.879770080505, 42.877061100066],
[-78.882680279729, 42.878315716355],
[-78.882997212601, 42.877921249193],
[-78.886814769885, 42.878216862708],
[-78.887867800179, 42.878898848589],
[-78.889798025628, 42.882939893077],
[-78.890708526612, 42.884369413024],
[-78.891104054881, 42.884372810143],
[-78.890685159749, 42.884923740959],
[-78.889802419597, 42.88458140583],
[-78.889471765898, 42.883266601576],
[-78.888610297719, 42.881557064138],
[-78.88824538767, 42.881043559082],
[-78.887663969126, 42.880505933608],
[-78.886511276071, 42.879782549478],
[-78.885729843477, 42.879633359679],
[-78.885657321922, 42.879489840449],
[-78.885388378167, 42.879520733898],
[-78.885477960894, 42.879662392524],
[-78.884884142055, 42.879826133333],
[-78.884170668597, 42.880092266347],
[-78.884256673635, 42.880323553441],
[-78.884644660529, 42.880316017189],
[-78.884933892197, 42.880428097712],
[-78.885118113062, 42.880715719701],
[-78.884005037353, 42.881134346101],
[-78.884158589952, 42.881349680304],
[-78.884586077568, 42.881215821074],
[-78.88501817708, 42.881263387159],
[-78.88525340928, 42.881490509102],
[-78.885584242775, 42.882289477102],
[-78.885469099097, 42.882491799144],
[-78.884837983978, 42.882760990243],
[-78.884998928433, 42.882960183498],
[-78.885659586755, 42.882723840062],
[-78.886141065218, 42.882947564825],
[-78.88669287759, 42.882485477102],
[-78.886894368763, 42.882487342132],
[-78.887115733149, 42.882642813119],
[-78.887091247827, 42.88278521772],
[-78.88636775636, 42.88339007899],
[-78.886993593113, 42.883794881242],
[-78.887832902146, 42.883088161157],
[-78.88812424972, 42.883057546222],
[-78.888365581003, 42.883383424195],
[-78.887556177876, 42.884101388084],
[-78.887725617189, 42.884223725383],
[-78.888106219229, 42.884226829558],
[-78.888964173836, 42.884991450117],
[-78.890278388386, 42.886133851602],
[-78.889977696089, 42.886257789772],
[-78.889530742239, 42.886704179221],
[-78.889994119397, 42.887125153082],
[-78.890288373206, 42.886924749274],
[-78.890561702554, 42.887113684824],
[-78.890222349219, 42.887343366622],
[-78.890669283318, 42.887738657929],
[-78.892308991613, 42.887966788027],
[-78.895823663417, 42.89085203781],
[-78.900659035914, 42.89424079869],
[-78.901972526359, 42.896664791974]
]
]
]
}
},
{
"type": "Feature",
"properties": {
"SBE4_ID": 0,
"NAME": "District C",
"FROMLEFT": 0,
"TOLEFT": 0,
"FROMRIGHT": 0,
"TORIGHT": 0,
"DIRECTION": null,
"STREET": null,
"ST_TYPE": null,
"ST_PREFIX": null,
"ST_SUFFIX": null,
"CITY_LEFT": null,
"CITY_RIGHT": null,
"LO_X_PRE": null,
"LO_X_NAME": null,
"LO_X_TYPE": null,
"LO_X_SUF": null,
"HI_X_PRE": null,
"HI_X_NAME": null,
"HI_X_TYPE": null,
"HI_X_SUF": null,
"LHS": null,
"RHS": null,
"BDY_LEFT": null,
"BDY_RIGHT": null,
"ST_CODE": null,
"RECNUM_L": 0,
"RECNUM_R": 0
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-78.837627146565, 42.878837513932],
[-78.837941152036, 42.878965450835],
[-78.83819418607, 42.879081477622],
[-78.838381120842, 42.879140478808],
[-78.838554145879, 42.879180497973],
[-78.839209164938, 42.879295449261],
[-78.839218575646, 42.879137593812],
[-78.839277105879, 42.878869450181],
[-78.839378110432, 42.878664463949],
[-78.839459169308, 42.878540460463],
[-78.839662137053, 42.878315482309],
[-78.839848095867, 42.878175440207],
[-78.840993608285, 42.8773402851],
[-78.841840090122, 42.876729496966],
[-78.841923145662, 42.87679144287],
[-78.842101168936, 42.876882430491],
[-78.842225160616, 42.876921481871],
[-78.842656139105, 42.876975514701],
[-78.843111662888, 42.877036691109],
[-78.844082096683, 42.877215515636],
[-78.845690144241, 42.877493490634],
[-78.847319148136, 42.877777491925],
[-78.848965127781, 42.87806647999],
[-78.852037149376, 42.87860344526],
[-78.854349132219, 42.879021444802],
[-78.854097173902, 42.879779502556],
[-78.85395309966, 42.880186467835],
[-78.853917199651, 42.880433480369],
[-78.85391517305, 42.880646487913],
[-78.853921126573, 42.881863504588],
[-78.853931180171, 42.883356438652],
[-78.853940148705, 42.884910454099],
[-78.853939204278, 42.885160430164],
[-78.853956166327, 42.887828481058],
[-78.853968122656, 42.889799449431],
[-78.853971132288, 42.891051498739],
[-78.85397215288, 42.891845505339],
[-78.853972198621, 42.893022473738],
[-78.853966208391, 42.894057475969],
[-78.853966202336, 42.89518645595],
[-78.853971183342, 42.896175439568],
[-78.853972158684, 42.896601463196],
[-78.853971149172, 42.896787515124],
[-78.853969201828, 42.897068497544],
[-78.853967150184, 42.897473464897],
[-78.853966120844, 42.897806458064],
[-78.853967177985, 42.898410483794],
[-78.853969206471, 42.899277475061],
[-78.853968188792, 42.900207505922],
[-78.853975108355, 42.902087433682],
[-78.853980179787, 42.903839480881],
[-78.853973132821, 42.905652440732],
[-78.853977155811, 42.906594455863],
[-78.853978093094, 42.907461483577],
[-78.85397918113, 42.908248463328],
[-78.85397920856, 42.908376496011],
[-78.853980193261, 42.909393434088],
[-78.853980210474, 42.910149476487],
[-78.853979150585, 42.910609513246],
[-78.853977165316, 42.911121442554],
[-78.853987122642, 42.912368483556],
[-78.853988172484, 42.913859465756],
[-78.853992156952, 42.914971472285],
[-78.852966188081, 42.914764488218],
[-78.852250183368, 42.91476043888],
[-78.849110125435, 42.914733502384],
[-78.848090136427, 42.914720483815],
[-78.843685159314, 42.914679519717],
[-78.843342161486, 42.914677457262],
[-78.843166191292, 42.914674459369],
[-78.839122091098, 42.914631449493],
[-78.837799115506, 42.914621491407],
[-78.833584124126, 42.914560522626],
[-78.83241714585, 42.914551482751],
[-78.829080108021, 42.914508449086],
[-78.82778316113, 42.914493450993],
[-78.826393117626, 42.914478493668],
[-78.825356171551, 42.914468451203],
[-78.824276112269, 42.914458490092],
[-78.823740195037, 42.914472456575],
[-78.823277168694, 42.914490464615],
[-78.822629115746, 42.914515469791],
[-78.822311180689, 42.914526461225],
[-78.821529178881, 42.914558458943],
[-78.821345196089, 42.914566500659],
[-78.820356116124, 42.914607483581],
[-78.819314115066, 42.914646445242],
[-78.817729142904, 42.914678502086],
[-78.816730112007, 42.914679448553],
[-78.815731086379, 42.914682458593],
[-78.814716140315, 42.914687520285],
[-78.813700087894, 42.914692521193],
[-78.813707198107, 42.912643478437],
[-78.812617097883, 42.91308546054],
[-78.811637082758, 42.913481443845],
[-78.810618108314, 42.913887451606],
[-78.810341136948, 42.914000497843],
[-78.809615106017, 42.914292468073],
[-78.80860315004, 42.914695522769],
[-78.808269090061, 42.914830453481],
[-78.807956101564, 42.914955498887],
[-78.807134086614, 42.915284504665],
[-78.805885154395, 42.915784474674],
[-78.80493916803, 42.916163511049],
[-78.804045097379, 42.916520464285],
[-78.803607093946, 42.916696476807],
[-78.802657160052, 42.917077516556],
[-78.802209161878, 42.917258448151],
[-78.801650193031, 42.91748349509],
[-78.80118510589, 42.917669492872],
[-78.800600098457, 42.917901523096],
[-78.800154111152, 42.918079499098],
[-78.799569096761, 42.918313505431],
[-78.799149128548, 42.918466481525],
[-78.799196151343, 42.913645471282],
[-78.799213134381, 42.90978751131],
[-78.799258103384, 42.906826475647],
[-78.799257005786, 42.898766388993],
[-78.799358070138, 42.895665586843],
[-78.799556506993, 42.884586515846],
[-78.799655074067, 42.884620784786],
[-78.800125495494, 42.88480826124],
[-78.800379504688, 42.884905392052],
[-78.800850164321, 42.885084514598],
[-78.800924150017, 42.884981482127],
[-78.800986154907, 42.884946466224],
[-78.801239465634, 42.884871035415],
[-78.801458078796, 42.8848059363],
[-78.801828101572, 42.884706520382],
[-78.802090163935, 42.884669443892],
[-78.802345077456, 42.884657453489],
[-78.802517172291, 42.884667224652],
[-78.802635863632, 42.884670633362],
[-78.80345302304, 42.884688907898],
[-78.803742210194, 42.884695374172],
[-78.804413217235, 42.884696599236],
[-78.805025473652, 42.884700099181],
[-78.806229149147, 42.884712264691],
[-78.807210647871, 42.884723921386],
[-78.807590161312, 42.884728504356],
[-78.808542656108, 42.884737406747],
[-78.808917163699, 42.88474120657],
[-78.809543184329, 42.884747779908],
[-78.813828093724, 42.884779520268],
[-78.814165109288, 42.884796458637],
[-78.815273559487, 42.884808087253],
[-78.816039135624, 42.884812407684],
[-78.816695361641, 42.884812486232],
[-78.821801614099, 42.88485226516],
[-78.823022887659, 42.88485541327],
[-78.824051656978, 42.884870857811],
[-78.824156097125, 42.88487244492],
[-78.824174133934, 42.884831504453],
[-78.824323540796, 42.884587614954],
[-78.824537797268, 42.884285827639],
[-78.825653134088, 42.88272150528],
[-78.826878138413, 42.88100544161],
[-78.827621978143, 42.879959355425],
[-78.82811652105, 42.879264219496],
[-78.828273183618, 42.879045142675],
[-78.828387707742, 42.878884990858],
[-78.828456314319, 42.878789049378],
[-78.82866111356, 42.87852048536],
[-78.828730171342, 42.878447492151],
[-78.828797160425, 42.878396448091],
[-78.828892041248, 42.878351790676],
[-78.828899107918, 42.878348465396],
[-78.828926891146, 42.87833919021],
[-78.829225056716, 42.878239657034],
[-78.829465129698, 42.878159514574],
[-78.831145325769, 42.877604336466],
[-78.832055810841, 42.877314246341],
[-78.832932180398, 42.877035441934],
[-78.833252169864, 42.877159499634],
[-78.834113186071, 42.877491496487],
[-78.834959151205, 42.877817510027],
[-78.835850124332, 42.878158483281],
[-78.836857082768, 42.878545438199],
[-78.837627146565, 42.878837513932]
]
]
]
}
},
{
"type": "Feature",
"properties": {
"SBE4_ID": 0,
"NAME": "District D",
"FROMLEFT": 0,
"TOLEFT": 0,
"FROMRIGHT": 0,
"TORIGHT": 0,
"DIRECTION": null,
"STREET": null,
"ST_TYPE": null,
"ST_PREFIX": null,
"ST_SUFFIX": null,
"CITY_LEFT": null,
"CITY_RIGHT": null,
"LO_X_PRE": null,
"LO_X_NAME": null,
"LO_X_TYPE": null,
"LO_X_SUF": null,
"HI_X_PRE": null,
"HI_X_NAME": null,
"HI_X_TYPE": null,
"HI_X_SUF": null,
"LHS": null,
"RHS": null,
"BDY_LEFT": null,
"BDY_RIGHT": null,
"ST_CODE": null,
"RECNUM_L": 0,
"RECNUM_R": 0
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-78.901723381735, 42.915191026387],
[-78.901687385561, 42.915593812733],
[-78.901490660546, 42.916630170586],
[-78.901218980764, 42.917611171965],
[-78.901120407637, 42.917771619495],
[-78.900989271025, 42.918133830255],
[-78.900873342915, 42.918550191728],
[-78.899665951793, 42.921990569544],
[-78.899526811453, 42.922433744354],
[-78.89930192452, 42.923267129412],
[-78.899135977952, 42.924128474984],
[-78.899114973195, 42.924767510886],
[-78.899139946071, 42.926001494167],
[-78.899057207581, 42.926067574984],
[-78.898987522131, 42.926314029322],
[-78.898983453742, 42.927374441665],
[-78.899023691312, 42.927912915357],
[-78.899141189881, 42.928907460014],
[-78.899362138609, 42.929629491006],
[-78.899454109303, 42.929828485337],
[-78.899655215955, 42.930137473353],
[-78.899820176282, 42.930411499352],
[-78.90110306187, 42.931467323124],
[-78.901238059994, 42.931487869305],
[-78.901320828066, 42.931426588637],
[-78.901358246309, 42.931350685681],
[-78.901085084084, 42.931057508687],
[-78.9012283493, 42.930961075081],
[-78.901363984173, 42.931056774709],
[-78.901360113442, 42.931059497811],
[-78.901367795835, 42.931059476468],
[-78.903447097025, 42.932541530167],
[-78.902950845493, 42.932887956547],
[-78.904003659877, 42.933654666147],
[-78.903890456438, 42.933787716258],
[-78.904096327445, 42.934151731026],
[-78.904623027769, 42.934543997043],
[-78.905200305327, 42.934428506332],
[-78.905243397656, 42.934546370885],
[-78.904524109007, 42.934731200583],
[-78.904567038319, 42.934907715719],
[-78.905443950214, 42.934693974857],
[-78.906024046859, 42.935028807078],
[-78.906675492591, 42.935617242179],
[-78.907821106424, 42.936970837733],
[-78.907160693455, 42.937170265233],
[-78.907226735776, 42.937302127202],
[-78.907967763591, 42.937252696674],
[-78.908741491621, 42.938360732925],
[-78.908917225436, 42.938755691811],
[-78.908913775937, 42.939075361262],
[-78.909128714377, 42.939290828963],
[-78.909726633994, 42.940778696666],
[-78.909764663649, 42.942233517697],
[-78.909309331826, 42.942202917964],
[-78.909187238303, 42.9432181489],
[-78.908390607633, 42.943626847434],
[-78.90856161627, 42.943742289351],
[-78.908881941819, 42.943842902152],
[-78.909174078662, 42.943821148215],
[-78.909443146723, 42.943763105048],
[-78.909690206056, 42.943780921039],
[-78.909719692232, 42.944000057757],
[-78.909680357066, 42.944744384989],
[-78.909568164734, 42.944805412442],
[-78.908927140153, 42.94485445098],
[-78.908833662533, 42.944958415949],
[-78.90964067119, 42.945009280448],
[-78.909619002209, 42.945679872051],
[-78.909304611518, 42.945732556989],
[-78.909116246049, 42.945868571649],
[-78.909674189646, 42.952042942709],
[-78.91001822618, 42.952962468367],
[-78.910403608155, 42.953606637741],
[-78.910840726781, 42.954472829906],
[-78.911880229378, 42.955785502662],
[-78.912520368877, 42.956326969779],
[-78.912028153582, 42.956654513594],
[-78.9086771657, 42.959127489609],
[-78.907819221045, 42.959758451934],
[-78.906997195317, 42.960366480472],
[-78.906862133062, 42.960467526526],
[-78.906080226069, 42.961043474844],
[-78.905309167052, 42.96162444914],
[-78.904505196904, 42.962212485364],
[-78.903730213482, 42.962807448294],
[-78.902960187653, 42.963372525809],
[-78.902177225, 42.963944521638],
[-78.901342176514, 42.964565469756],
[-78.899579176419, 42.965841489038],
[-78.898762156103, 42.966459462464],
[-78.896760164452, 42.96498847469],
[-78.894771438071, 42.963503486441],
[-78.89386067062, 42.962765963766],
[-78.893263566236, 42.962166597176],
[-78.892476222457, 42.961277469393],
[-78.89064615624, 42.958574487032],
[-78.889302116751, 42.958593490096],
[-78.880368114697, 42.958631459274],
[-78.879357172331, 42.958635524756],
[-78.878535180779, 42.958634520208],
[-78.875161089555, 42.958666522495],
[-78.874260812744, 42.958666015385],
[-78.873596192569, 42.958674524425],
[-78.87264917636, 42.958683476342],
[-78.871702218265, 42.958689447781],
[-78.870748150919, 42.958693491083],
[-78.869498108862, 42.958702504931],
[-78.865813204393, 42.958696465738],
[-78.861570095656, 42.958679456541],
[-78.858661220535, 42.958674516449],
[-78.85429612666, 42.958643526376],
[-78.853140202693, 42.958634510824],
[-78.852034163042, 42.958619480932],
[-78.850906181488, 42.958604459237],
[-78.849779121791, 42.958586513898],
[-78.848615101802, 42.958571512096],
[-78.847455183957, 42.958551499122],
[-78.846108200331, 42.95852948601],
[-78.844987152337, 42.958515522535],
[-78.844690121316, 42.958509487334],
[-78.844621186439, 42.958528463622],
[-78.843802137029, 42.958527469401],
[-78.842606180657, 42.958507447879],
[-78.840647131492, 42.958479474298],
[-78.839364141566, 42.958459462377],
[-78.838272144297, 42.958441486445],
[-78.836799724858, 42.958410889437],
[-78.830232492216, 42.947306867017],
[-78.831683101431, 42.945980476133],
[-78.832706121672, 42.945059490835],
[-78.833775088713, 42.944089506049],
[-78.834016207309, 42.943869471119],
[-78.834803178437, 42.943150505268],
[-78.835542131501, 42.942481495364],
[-78.836197184366, 42.941882464057],
[-78.837979114889, 42.940269504028],
[-78.839077109997, 42.939258518471],
[-78.8403230891, 42.938111456668],
[-78.841576128265, 42.936956490987],
[-78.842122161145, 42.936448516285],
[-78.842812094657, 42.935809469262],
[-78.843914102001, 42.934800463768],
[-78.844799205777, 42.933988451962],
[-78.845831119275, 42.933035447943],
[-78.846412207935, 42.932487467323],
[-78.846660151059, 42.932252500101],
[-78.847485178107, 42.931472471195],
[-78.848157122391, 42.930837509126],
[-78.849554204143, 42.929511488259],
[-78.850970206168, 42.928173468061],
[-78.851082136744, 42.928068495909],
[-78.851190145437, 42.927965455682],
[-78.851517180581, 42.927657494013],
[-78.8522911181, 42.926926512317],
[-78.852905136476, 42.92634650546],
[-78.853999129939, 42.925312463508],
[-78.85691813618, 42.922551517474],
[-78.857284147637, 42.922205489164],
[-78.858858107823, 42.920720502993],
[-78.859166094303, 42.920426487712],
[-78.859454197798, 42.920153491907],
[-78.86010510545, 42.919542489266],
[-78.861299190918, 42.918406496238],
[-78.862280213917, 42.917470460301],
[-78.864418188919, 42.9153534561],
[-78.865498140432, 42.915359438774],
[-78.866845212851, 42.915370510536],
[-78.86917914143, 42.915395435666],
[-78.87312418866, 42.915426508701],
[-78.873702206024, 42.91543348271],
[-78.877051108331, 42.91546148206],
[-78.87866314958, 42.915476481478],
[-78.880343168068, 42.915487439724],
[-78.882110213356, 42.915489476223],
[-78.882638222415, 42.915476494069],
[-78.88340815357, 42.915459433177],
[-78.884527132578, 42.915431495596],
[-78.885650210873, 42.915402507303],
[-78.886093194365, 42.915385466685],
[-78.886905133314, 42.915362452163],
[-78.888319139194, 42.915333448142],
[-78.890409117604, 42.915285473509],
[-78.893237157634, 42.915212504174],
[-78.894609186831, 42.915176479281],
[-78.895997195989, 42.915137461392],
[-78.897505146599, 42.915106492108],
[-78.898437191618, 42.915150518532],
[-78.899449182894, 42.915203515962],
[-78.900275140433, 42.915212520079],
[-78.901396143886, 42.915195512593],
[-78.901723381735, 42.915191026387]
]
],
[
[
[-78.901965073594, 42.93063387993],
[-78.901474134696, 42.930150283199],
[-78.901303801773, 42.929931231743],
[-78.90068056942, 42.924270657064],
[-78.901034845561, 42.923098730657],
[-78.900892404011, 42.922625122312],
[-78.901610785294, 42.920566600395],
[-78.901554286473, 42.920379488059],
[-78.902114432624, 42.919862425843],
[-78.902739012309, 42.91808848975],
[-78.902679664029, 42.916083916329],
[-78.902553167474, 42.91607741037],
[-78.902576262214, 42.915197400406],
[-78.901723381735, 42.915191026387],
[-78.902572179079, 42.915185584733],
[-78.902648073383, 42.912767353788],
[-78.902917211183, 42.912747738711],
[-78.903375576282, 42.915030042599],
[-78.903196026883, 42.915050437419],
[-78.90349282256, 42.916134808343],
[-78.903675633153, 42.91638330249],
[-78.903709818183, 42.916586596549],
[-78.903761854759, 42.916856993241],
[-78.903764806827, 42.917104781505],
[-78.904540597173, 42.920387611096],
[-78.904626688902, 42.921641302955],
[-78.904739642305, 42.92241977672],
[-78.904811960876, 42.922979953887],
[-78.906024963866, 42.926889483299],
[-78.906104159653, 42.927576597235],
[-78.906880221557, 42.929874366986],
[-78.907592369616, 42.931898775871],
[-78.908152833027, 42.932853079231],
[-78.908462544182, 42.933874974486],
[-78.908066549152, 42.933754339964],
[-78.907897227977, 42.933954778537],
[-78.907813956047, 42.934008862743],
[-78.907573285504, 42.934133360195],
[-78.907429352515, 42.934280220996],
[-78.907397663007, 42.934379090356],
[-78.907423757586, 42.934637282639],
[-78.907363899381, 42.934705363373],
[-78.907163430271, 42.934574567737],
[-78.906984091612, 42.934556895984],
[-78.906130070387, 42.933909958242],
[-78.905602799015, 42.933557227353],
[-78.905433396888, 42.933385526357],
[-78.905152081911, 42.933235061667],
[-78.904997000826, 42.933124029339],
[-78.904858212437, 42.932914170467],
[-78.904589396021, 42.932922814655],
[-78.904406474211, 42.932663346702],
[-78.902611918264, 42.931342051255],
[-78.90227385317, 42.930954738057],
[-78.901965073594, 42.93063387993]
]
],
[
[
[-78.901965073594, 42.93063387993],
[-78.901368160905, 42.931059475454],
[-78.901367795835, 42.931059476468],
[-78.901366143259, 42.931058298176],
[-78.901363984173, 42.931056774709],
[-78.901965073594, 42.93063387993]
]
]
]
}
},
{
"type": "Feature",
"properties": {
"SBE4_ID": 1,
"NAME": "District E",
"FROMLEFT": 0,
"TOLEFT": 0,
"FROMRIGHT": 0,
"TORIGHT": 0,
"DIRECTION": null,
"STREET": null,
"ST_TYPE": null,
"ST_PREFIX": null,
"ST_SUFFIX": null,
"CITY_LEFT": null,
"CITY_RIGHT": null,
"LO_X_PRE": null,
"LO_X_NAME": null,
"LO_X_TYPE": null,
"LO_X_SUF": null,
"HI_X_PRE": null,
"HI_X_NAME": null,
"HI_X_TYPE": null,
"HI_X_SUF": null,
"LHS": null,
"RHS": null,
"BDY_LEFT": null,
"BDY_RIGHT": null,
"ST_CODE": null,
"RECNUM_L": 0,
"RECNUM_R": 0
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-78.831683101431, 42.945980476133],
[-78.830232492216, 42.947306867017],
[-78.836799724858, 42.958410889437],
[-78.832187196972, 42.958323512612],
[-78.826474186473, 42.958205457522],
[-78.823834183139, 42.958159472371],
[-78.822365095132, 42.958097505663],
[-78.820899098817, 42.958073501701],
[-78.82019508909, 42.958059487793],
[-78.818927183386, 42.958031448563],
[-78.818928139522, 42.957409530145],
[-78.818755131976, 42.957541451994],
[-78.816006104091, 42.958599453162],
[-78.814583111027, 42.959195458928],
[-78.81450708947, 42.959270475845],
[-78.811130096357, 42.960605471484],
[-78.809014900499, 42.96139808943],
[-78.8089506892, 42.958981828067],
[-78.807864349011, 42.958987137337],
[-78.807837651702, 42.956472026802],
[-78.8039730845, 42.956445585938],
[-78.803990043626, 42.954657594849],
[-78.808938380745, 42.954717918216],
[-78.808967801799, 42.95229058319],
[-78.81061487559, 42.952283281903],
[-78.810984396665, 42.951701194087],
[-78.811032169739, 42.949688478569],
[-78.811195670948, 42.949434969295],
[-78.803443192797, 42.949418497959],
[-78.799033430792, 42.949343016788],
[-78.799044090006, 42.947037443189],
[-78.799051155406, 42.945060527182],
[-78.799052093029, 42.943903515106],
[-78.799028108521, 42.938056468751],
[-78.799026186745, 42.937346496482],
[-78.799013094112, 42.936574499666],
[-78.799020170757, 42.935835507134],
[-78.799014196533, 42.935097487922],
[-78.799020187473, 42.934418495685],
[-78.799025194953, 42.933506519599],
[-78.799022134242, 42.933098481156],
[-78.799020087649, 42.9327925117],
[-78.799014137486, 42.93020746101],
[-78.798996103903, 42.929914447718],
[-78.799154182032, 42.922793523288],
[-78.799149092004, 42.919015442412],
[-78.799149128548, 42.918466481525],
[-78.799569096761, 42.918313505431],
[-78.800154111152, 42.918079499098],
[-78.800600098457, 42.917901523096],
[-78.80118510589, 42.917669492872],
[-78.801650193031, 42.91748349509],
[-78.802209161878, 42.917258448151],
[-78.802657160052, 42.917077516556],
[-78.803607093946, 42.916696476807],
[-78.804045097379, 42.916520464285],
[-78.80493916803, 42.916163511049],
[-78.805885154395, 42.915784474674],
[-78.807134086614, 42.915284504665],
[-78.807956101564, 42.914955498887],
[-78.808269090061, 42.914830453481],
[-78.80860315004, 42.914695522769],
[-78.809615106017, 42.914292468073],
[-78.810341136948, 42.914000497843],
[-78.810618108314, 42.913887451606],
[-78.811637082758, 42.913481443845],
[-78.812617097883, 42.91308546054],
[-78.813707198107, 42.912643478437],
[-78.813700085401, 42.914692509495],
[-78.814716140315, 42.914687520285],
[-78.815731086379, 42.914682458593],
[-78.816730112007, 42.914679448553],
[-78.817729142904, 42.914678502086],
[-78.819314115066, 42.914646445242],
[-78.820432125439, 42.914604493197],
[-78.821345196089, 42.914566500659],
[-78.821529178881, 42.914558458943],
[-78.822311180689, 42.914526461225],
[-78.822629115746, 42.914515469791],
[-78.823277168694, 42.914490464615],
[-78.823740195037, 42.914472456575],
[-78.824408162969, 42.91445848396],
[-78.825356171551, 42.914468451203],
[-78.826393117626, 42.914478493668],
[-78.82778316113, 42.914493450993],
[-78.829080108021, 42.914508449086],
[-78.83241714585, 42.914551482751],
[-78.833584124126, 42.914560522626],
[-78.837799115506, 42.914621491407],
[-78.839122091098, 42.914631449493],
[-78.843166191292, 42.914674459369],
[-78.843420190894, 42.914677444754],
[-78.843685159314, 42.914679519717],
[-78.848090136427, 42.914720483815],
[-78.849110125435, 42.914733502384],
[-78.852250183368, 42.91476043888],
[-78.852966188081, 42.914764488218],
[-78.853992156952, 42.914971472285],
[-78.853988172484, 42.913859465756],
[-78.853987122642, 42.912368483556],
[-78.853977165316, 42.911121442554],
[-78.854980187887, 42.911132459479],
[-78.855878177135, 42.911142508722],
[-78.856792143888, 42.911149490723],
[-78.859583174394, 42.91118043877],
[-78.862418134656, 42.911216496868],
[-78.865916195666, 42.911257431396],
[-78.865492168965, 42.912512484175],
[-78.864998170713, 42.913943492875],
[-78.864641125078, 42.914975505665],
[-78.864525138119, 42.915222437713],
[-78.864418188919, 42.9153534561],
[-78.862280213917, 42.917470460301],
[-78.861299190918, 42.918406496238],
[-78.86010510545, 42.919542489266],
[-78.859454197798, 42.920153491907],
[-78.859166094303, 42.920426487712],
[-78.858858107823, 42.920720502993],
[-78.857284147637, 42.922205489164],
[-78.85691813618, 42.922551517474],
[-78.853999129939, 42.925312463508],
[-78.852905136476, 42.92634650546],
[-78.8522911181, 42.926926512317],
[-78.851517180581, 42.927657494013],
[-78.851190145437, 42.927965455682],
[-78.851082136744, 42.928068495909],
[-78.850970206168, 42.928173468061],
[-78.849554204143, 42.929511488259],
[-78.848157122391, 42.930837509126],
[-78.847485178107, 42.931472471195],
[-78.846660151059, 42.932252500101],
[-78.846412207935, 42.932487467323],
[-78.845831119275, 42.933035447943],
[-78.844799205777, 42.933988451962],
[-78.843914102001, 42.934800463768],
[-78.842870123941, 42.935755476964],
[-78.842122161145, 42.936448516285],
[-78.841576128265, 42.936956490987],
[-78.8403230891, 42.938111456668],
[-78.839308150049, 42.939046464333],
[-78.839077109997, 42.939258518471],
[-78.837979114889, 42.940269504028],
[-78.836197184366, 42.941882464057],
[-78.835542131501, 42.942481495364],
[-78.834803178437, 42.943150505268],
[-78.834016207309, 42.943869471119],
[-78.833775088713, 42.944089506049],
[-78.832706121672, 42.945059490835],
[-78.831683101431, 42.945980476133]
]
]
]
}
}
]
}
object FViewComplaintDetails: TFViewComplaintDetails
Width = 800
Height = 672
Caption = 'tbl_logs'
CSSLibrary = cssBootstrap
ElementFont = efCSS
object btnHistory: TWebButton
......
......@@ -98,7 +98,7 @@
type="button"
class="btn btn-primary btn-sm shadow position-fixed"
style="right: 12px; bottom: 72px; z-index: 1040;">
View On Map
Map
</button>
</div>
......@@ -57,7 +57,6 @@ implementation
procedure TFViewComplaints.WebFormCreate(Sender: TObject);
begin
Document.addEventListener('click', @HandleListClick);
ShowSpinner('spinner');
tmrRefresh.Enabled := False;
GetComplaints;
tmrRefresh.Enabled := True;
......@@ -161,7 +160,6 @@ begin
Exit;
FLoading := True;
ShowSpinner('spinner');
try
try
xdcResponse := await(xdwcComplaints.RawInvokeAsync('IApiService.GetComplaintList', []));
......@@ -182,7 +180,6 @@ begin
Utils.ShowErrorModal(E.Message);
end;
finally
HideSpinner('spinner');
FLoading := False;
end;
end;
......
......@@ -76,7 +76,6 @@ procedure TFViewEditUser.btnCancelClick(Sender: TObject);
// Cancels the edit or addition
begin
Info := 'Failure:Changes discarded!';
FViewMain.ShowUserForm(Info);
end;
procedure TFViewEditUser.btnCloseNotificationClick(Sender: TObject);
......@@ -222,7 +221,6 @@ begin
if (not Info.Contains('Failure')) then
begin
console.log('Navigating back to user list...');
FViewMain.ShowUserForm(Info);
end
else
begin
......
object FViewMain: TFViewMain
Width = 640
Height = 586
Width = 1208
Height = 810
CSSLibrary = cssBootstrap
ElementFont = efCSS
OnCreate = WebFormCreate
......@@ -16,18 +16,6 @@ object FViewMain: TFViewMain
Visible = False
WidthPercent = 100.000000000000000000
end
object wllblUserProfile: TWebLinkLabel
Left = 529
Top = 21
Width = 63
Height = 15
ElementID = 'dropdown.menu.userprofile'
Visible = False
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = wllblUserProfileClick
Caption = ' User Profile'
end
object wllblLogout: TWebLinkLabel
Left = 551
Top = 85
......@@ -61,7 +49,6 @@ object FViewMain: TFViewMain
Visible = False
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = lblCallsListClick
Caption = 'Calls'
end
object lblUsers: TWebLinkLabel
......@@ -74,7 +61,6 @@ object FViewMain: TFViewMain
Visible = False
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = lblUsersClick
Caption = 'Users'
end
object lblMainTitle: TWebLabel
......@@ -88,12 +74,12 @@ object FViewMain: TFViewMain
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object WebPanel1: TWebPanel
object pnlMain: TWebPanel
Left = 136
Top = 110
Width = 471
Height = 369
ElementID = 'main.webpanel'
ElementID = 'pnl_main'
ChildOrder = 3
TabOrder = 0
end
......@@ -108,7 +94,7 @@ object FViewMain: TFViewMain
end
object WebMemo1: TWebMemo
Left = 136
Top = 467
Top = 469
Width = 471
Height = 83
ElementID = 'main.debugmemo'
......@@ -162,6 +148,33 @@ object FViewMain: TFViewMain
WidthPercent = 100.000000000000000000
OnClick = btnUnitsClick
end
object pnlMap: TWebPanel
Left = 660
Top = 337
Width = 335
Height = 221
ElementID = 'pnl_map'
ChildOrder = 3
TabOrder = 6
end
object pnlUnits: TWebPanel
Left = 660
Top = 110
Width = 335
Height = 221
ElementID = 'pnl_units'
ChildOrder = 3
TabOrder = 7
end
object pnlComplaints: TWebPanel
Left = 660
Top = 574
Width = 335
Height = 221
ElementID = 'pnl_complaints'
ChildOrder = 3
TabOrder = 8
end
object xdwcBadgeCounts: TXDataWebClient
Connection = DMConnection.ApiConnection
Left = 44
......
......@@ -17,9 +17,10 @@
</nav>
<!-- Main content: fills space between navbars -->
<main id="main.webpanel" class="flex-grow-1 position-relative p-0 overflow-hidden" style="min-height:0;">
<!-- TWebPanel content gets injected here -->
</main>
<div id="pnl_main" class="flex-grow-1 position-relative p-0 overflow-hidden d-none" style="min-height:0;"></div>
<div id="pnl_map" class="flex-grow-1 position-relative p-0 overflow-hidden" style="min-height:0;"></div>
<div id="pnl_units" class="flex-grow-1 position-relative p-0 overflow-hidden d-none" style="min-height:0;"></div>
<div id="pnl_complaints" class="flex-grow-1 position-relative p-0 overflow-hidden d-none" style="min-height:0;"></div>
<!-- Bottom Nav -->
<nav class="navbar navbar-dark bg-primary py-2 flex-shrink-0">
......
......@@ -6,14 +6,13 @@ uses
System.SysUtils, System.Classes, JS, Web, WEBLib.Graphics, WEBLib.Controls,
WEBLib.Forms, WEBLib.Dialogs, WEBLib.ExtCtrls, Vcl.Controls, Vcl.StdCtrls,
WEBLib.StdCtrls, Data.DB, XData.Web.JsonDataset, XData.Web.Dataset,
App.Types, ConnectionModule, XData.Web.Client;
App.Types, ConnectionModule, XData.Web.Client, View.Map, View.Units, View.Complaints;
type
TFViewMain = class(TWebForm)
lblUsername: TWebLabel;
wllblUserProfile: TWebLinkLabel;
wllblLogout: TWebLinkLabel;
WebPanel1: TWebPanel;
pnlMain: TWebPanel;
WebMessageDlg1: TWebMessageDlg;
lblAppTitle: TWebLabel;
WebMemo1: TWebMemo;
......@@ -25,12 +24,12 @@ type
btnUnits: TWebButton;
tmrBadgeCounts: TWebTimer;
lblMainTitle: TWebLabel;
pnlMap: TWebPanel;
pnlUnits: TWebPanel;
pnlComplaints: TWebPanel;
procedure WebFormCreate(Sender: TObject);
procedure mnuLogoutClick(Sender: TObject);
procedure wllblUserProfileClick(Sender: TObject);
procedure wllblLogoutClick(Sender: TObject);
procedure lblCallsListClick(Sender: TObject);
procedure lblUsersClick(Sender: TObject);
procedure btnUnitsClick(Sender: TObject);
procedure btnComplaintsClick(Sender: TObject);
procedure btnMapClick(Sender: TObject);
......@@ -38,13 +37,11 @@ type
private
{ Private declarations }
FUserInfo: string;
FSearchSettings: string;
FChildForm: TWebForm;
FMapForm: TFViewMap;
FUnitsForm: TFViewUnits;
FComplaintsForm: TFViewComplaints;
FLogoutProc: TLogoutProc;
FSearchProc: TSearchProc;
procedure ShowCrudForm( AFormClass: TWebFormClass );
//procedure EditUser( AParam, BParam, CParam, DParam, EParam: string);
function GetUserInfo: string;
[async] procedure RefreshBadgesAsync;
procedure ShowUnitDetails(UnitId: string);
procedure SetHeaderTitle(const title: string);
......@@ -52,12 +49,12 @@ type
{ Public declarations }
class procedure Display(LogoutProc: TLogoutProc);
procedure ShowForm( AFormClass: TWebFormClass );
procedure EditUser( Mode, FullName, Username, Phone, Email: string; admin, active: boolean);
procedure ShowUserForm(Info: string);
procedure ShowComplaintDetails(ComplaintId: string);
procedure SetActiveNavButton(const BtnId: string);
procedure ShowMapFocusUnit(const unitId: string);
procedure ShowMapFocusComplaint(const complaintId: string);
procedure HidePanel(aPanel: TWebPanel);
procedure ShowPanel(aPanel: TWebPanel);
end;
var
......@@ -69,10 +66,7 @@ uses
Auth.Service,
View.Login,
View.UserProfile,
View.Map,
View.Complaints,
View.ComplaintDetails,
View.Units,
View.Admin,
View.Users,
View.EditUser,
......@@ -85,7 +79,6 @@ procedure TFViewMain.WebFormCreate(Sender: TObject);
var
userName: string;
begin
FUserInfo := GetUserInfo;
userName := JS.toString(AuthService.TokenPayload.Properties['user_name']);
lblUsername.Caption := ' ' + userName.ToLower + ' ';
FChildForm := nil;
......@@ -93,7 +86,6 @@ begin
lblUsers.Visible := false;
Utils.HideSpinner('spinner');
ShowForm(TFViewMap);
SetHeaderTitle('Map');
RefreshBadgesAsync;
end;
......@@ -108,16 +100,6 @@ begin
end;
procedure TFViewMain.lblUsersClick(Sender: TObject);
begin
ShowForm(TFViewUsers);
end;
procedure TFViewMain.lblCallsListClick(Sender: TObject);
begin
ShowForm(TFViewComplaints);
end;
procedure TFViewMain.mnuLogoutClick(Sender: TObject);
begin
FLogoutProc;
......@@ -130,55 +112,24 @@ begin
end;
procedure TFViewMain.wllblUserProfileClick(Sender: TObject);
begin
ShowCrudForm(TFViewUserProfile);
end;
function TFViewMain.GetUserInfo: string;
var
userStr: string;
begin
userStr := '?username=' + JS.toString(AuthService.TokenPayload.Properties['user_name']);
userStr := userStr + '&fullname=' + JS.toString(AuthService.TokenPayload.Properties['user_fullname']);
userStr := userStr + '&agency=' + JS.toString(AuthService.TokenPayload.Properties['user_agency']);
userStr := userStr + '&badge=' + JS.toString(AuthService.TokenPayload.Properties['user_badge']);
userStr := userStr + '&userid=' + JS.toString(AuthService.TokenPayload.Properties['user_id']);
userStr := userStr + '&personnelid=' + JS.toString(AuthService.TokenPayload.Properties['user_personnelid']);
Result := userStr;
end;
procedure TFViewMain.btnComplaintsClick(Sender: TObject);
begin
SetHeaderTitle('Complaints');
SetActiveNavButton('view.main.btncomplaints');
ShowForm(TFViewComplaints);
if (FChildForm is TFViewComplaints) then
TFViewComplaints(FChildForm).OnShowDetails :=
procedure(AComplaintId: string)
begin
ShowComplaintDetails(AComplaintId);
end;
end;
procedure TFViewMain.btnMapClick(Sender: TObject);
begin
SetHeaderTitle('Map');
SetActiveNavButton('view.main.btnmap');
ShowForm(TFViewMap);
end;
procedure TFViewMain.btnUnitsClick(Sender: TObject);
begin
SetHeaderTitle('Units');
SetActiveNavButton('view.main.btnunits');
ShowForm(TFViewUnits);
end;
class procedure TFViewMain.Display(LogoutProc: TLogoutProc);
begin
if Assigned(FViewMain) then
......@@ -188,47 +139,122 @@ begin
end;
procedure TFViewMain.ShowCrudForm(AFormClass: TWebFormClass);
procedure TFViewMain.ShowForm(AFormClass: TWebFormClass);
begin
ShowForm(AFormClass);
end;
// Map (cached in pnlMapHost -> ElementID = 'pnl_map')
if AFormClass = TFViewMap then
begin
HidePanel(pnlMain);
HidePanel(pnlUnits);
HidePanel(pnlComplaints);
ShowPanel(pnlMap);
SetHeaderTitle('Map');
SetActiveNavButton('view.main.btnmap');
procedure TFViewMain.ShowForm(AFormClass: TWebFormClass);
begin
if Assigned(FChildForm) then
if not Assigned(FMapForm) then
Application.CreateForm(TFViewMap, pnlMap.ElementID, TWebForm(FMapForm));
FChildForm := FMapForm;
Exit;
end;
if AFormClass = TFViewUnits then
begin
HidePanel(pnlMain);
HidePanel(pnlMap);
HidePanel(pnlComplaints);
ShowPanel(pnlUnits);
SetHeaderTitle('Units');
SetActiveNavButton('view.main.btnunits');
if not Assigned(FUnitsForm) then
Application.CreateForm(TFViewUnits, pnlUnits.ElementID, TWebForm(FUnitsForm));
FChildForm := FUnitsForm;
Exit;
end;
if AFormClass = TFViewComplaints then
begin
HidePanel(pnlMain);
HidePanel(pnlMap);
HidePanel(pnlUnits);
ShowPanel(pnlComplaints);
SetHeaderTitle('Complaints');
SetActiveNavButton('view.main.btncomplaints');
if not Assigned(FComplaintsForm) then
Application.CreateForm(TFViewComplaints, pnlComplaints.ElementID, TWebForm(FComplaintsForm));
FChildForm := FComplaintsForm;
Exit;
end;
// Everything else: use pnlMain
HidePanel(pnlMap);
HidePanel(pnlUnits);
HidePanel(pnlComplaints);
ShowPanel(pnlMain);
if Assigned(FChildForm) and (FChildForm <> FMapForm) and (FChildForm <> FUnitsForm) and (FChildForm <> FComplaintsForm) then
FChildForm.Free;
Application.CreateForm(AFormClass, WebPanel1.ElementID, FChildForm);
Application.CreateForm(AFormClass, pnlMain.ElementID, FChildForm);
end;
procedure TFViewMain.EditUser( Mode, FullName, Username, Phone, Email: string; Admin, Active: boolean);
procedure TFViewMain.HidePanel(aPanel: TWebPanel);
var
el: TJSHTMLElement;
begin
if Assigned(FChildForm) then
FChildForm.Free;
FChildForm := TFViewEditUser.CreateForm(WebPanel1.ElementID, Mode, FullName, Username, Phone, Email, Admin, Active);
if (aPanel = nil) or (aPanel.ElementHandle = nil) then
Exit;
el := TJSHTMLElement(aPanel.ElementHandle);
el.classList.add('d-none');
end;
procedure TFViewMain.ShowUserForm(Info: string);
procedure TFViewMain.ShowPanel(aPanel: TWebPanel);
var
el: TJSHTMLElement;
begin
if Assigned(FChildForm) then
FChildForm.Free;
FChildForm := TFViewUsers.CreateForm(WebPanel1.ElementID, Info);
if (aPanel = nil) or (aPanel.ElementHandle = nil) then
Exit;
el := TJSHTMLElement(aPanel.ElementHandle);
el.classList.remove('d-none');
end;
procedure TFViewMain.ShowComplaintDetails(ComplaintId: string);
begin
SetHeaderTitle('Complaint Details');
if Assigned(FChildForm) then
HidePanel(pnlMap);
HidePanel(pnlUnits);
HidePanel(pnlComplaints);
ShowPanel(pnlMain);
if Assigned(FChildForm) and (FChildForm <> FMapForm) and (FChildForm <> FUnitsForm) and (FChildForm <> FComplaintsForm) then
FChildForm.Free;
FChildForm := TFViewComplaintDetails.CreateForm(WebPanel1.ElementID, ComplaintId);
FChildForm := TFViewComplaintDetails.CreateForm(pnlMain.ElementID, ComplaintId);
end;
procedure TFViewMain.ShowUnitDetails(UnitId: string);
begin
SetHeaderTitle('Unit Details');
if Assigned(FChildForm) then
HidePanel(pnlMap);
HidePanel(pnlUnits);
HidePanel(pnlComplaints);
ShowPanel(pnlMain);
if Assigned(FChildForm) and (FChildForm <> FMapForm) and (FChildForm <> FUnitsForm) and (FChildForm <> FComplaintsForm) then
FChildForm.Free;
FChildForm := TFViewUnitDetails.CreateForm(WebPanel1.ElementID, UnitId);
FChildForm := TFViewUnitDetails.CreateForm(pnlMain.ElementID, UnitId);
end;
......@@ -296,8 +322,6 @@ procedure TFViewMain.ShowMapFocusUnit(const unitId: string);
var
pendingUnitId: string;
begin
SetHeaderTitle('Map');
SetActiveNavButton('view.main.btnmap');
ShowForm(TFViewMap);
pendingUnitId := unitId;
......@@ -314,8 +338,6 @@ procedure TFViewMain.ShowMapFocusComplaint(const complaintId: string);
var
pendingComplaintId: string;
begin
SetHeaderTitle('Map');
SetActiveNavButton('view.main.btnmap');
ShowForm(TFViewMap);
pendingComplaintId := complaintId;
......
......@@ -70,20 +70,16 @@ begin
httpReqGeoJson.Execute;
asm
window.showComplaintDetails = function (id) {
console.log('JS bridge showComplaintDetails called, id=', id);
try {
pas['View.Main'].FViewMain.ShowComplaintDetails(id);
} catch (e) {
console.log('Error in TFViewMain.ShowComplaintDetails', e);
}
};
window.showUnitDetails = function (id) {
console.log('JS bridge showUnitDetails called, id=', id);
try {
pas['View.Main'].FViewMain.ShowUnitDetails(id);
} catch (e) {
console.log('Error in TFViewMain.ShowUnitDetails', e);
}
};
end;
......@@ -155,9 +151,7 @@ begin
try
lfMap.Polygons.Clear;
Console.Log('GeoJSON len=' + AResponse.Length.ToString);
lfMap.LoadGeoJSONFromText(AResponse, True, Trim(FPendingUnitId) = '');
Console.Log('Loaded polygons count=' + lfMap.Polygons.Count.ToString);
for i := 0 to lfMap.Polygons.Count - 1 do
begin
......@@ -404,7 +398,6 @@ begin
'</div>';
m.DataString := 'unit|' + unitId;
console.log('Unit marker ds=' + m.DataString);
m.IconURL := CarIconForDistrict(dist);
end;
end;
......@@ -662,6 +655,13 @@ begin
coord := CreateCoordinate(userLocationMarker.Latitude, userLocationMarker.Longitude);
lfMap.SetCenterCoordinate(coord);
FPendingFocusCoord := coord;
FPendingFocusZoom := 17;
FDoFocusZoom := True;
tmrLocate.Interval := 250;
tmrLocate.Enabled := True;
end;
......
......@@ -132,7 +132,6 @@ begin
FLoading := True;
console.log('GetUnits: Invoking API...');
Utils.ShowSpinner('spinner');
try
try
xdcResponse := await(xdwcUnits.RawInvokeAsync('IApiService.GetUnitList', []));
......@@ -141,27 +140,21 @@ begin
respObj := TJSObject(xdcResponse.Result);
xdwdsUnits.Close;
console.log('Units dataset closed');
xdwdsUnits.SetJsonData(respObj['data']);
console.log('JsonData set on units dataset:', respObj['data']);
xdwdsUnits.Open;
console.log('Units dataset opened. Record count:', xdwdsUnits.RecordCount);
unitCount := Integer(respObj['count']);
lblEntries.Caption := Format('%d units', [unitCount]);
console.log('Units label updated:', lblEntries.Caption);
except
on E: EXDataClientRequestException do
begin
console.log('XData exception (units):', E.ErrorResult.ErrorMessage);
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
end;
end;
finally
FLoading := False;
Utils.HideSpinner('spinner');
console.log('GetUnits complete');
end;
end;
......
......@@ -150,7 +150,6 @@ begin
isActive := false
else
isActive := true;
FViewMain.EditUser('Edit', Username.innerText, FullName.innerText, PhoneNum.innerText, Email.innerText, isAdmin, isActive);
end;
......@@ -483,8 +482,7 @@ end;
procedure TFViewUsers.btnAddUserClick(Sender: TObject);
begin
//Info := '';
FViewMain.EditUser('Add', '', '', '', '', false, true);
//Info := '';mm
end;
procedure TFViewUsers.btnCloseNotificationClick(Sender: TObject);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment