mapping-component-package-jp 0.0.36 → 0.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapping-component-package-jp",
3
- "version": "0.0.36",
3
+ "version": "0.0.38",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -32,8 +32,6 @@ const mapOptions = {
32
32
  mapTypeId: 'hybrid', //this causes the reloading of tiles if const mapOptions is inside the component
33
33
  mapTypeControl: true,
34
34
  zoomControl: true,
35
- //fullScreenControl: false,
36
- //streetViewControl: false,
37
35
  };
38
36
 
39
37
 
@@ -23,7 +23,7 @@ export class MapOverlayManager {
23
23
  RenderBackgroundFields(locations: any[], properties: any): void;
24
24
  RenderSAAdministrative(saAdministrativeJson: any[], selectedSAProvince: number, selectedSADM: number, selectedSALM: number, selectedSAWard: number, offsetX: number, offsetY: number, vMapWidth: number, isDashboard: boolean): void;
25
25
  RenderSACadastral(saCadastralJson: any, offsetX: number, offsetY: number, vmWidth: number, isDashboard: boolean, fitBounds: boolean): void;
26
-
26
+ RenderGPRegions(gpRegionsJson: any[], gsByRegionJson: any[], selectedRegion: number, offsetX: number, offsetY: number, vMapWidth: number, isDashboard: boolean): void;
27
27
  // Shape Selection and Management
28
28
  selectShape(shapeId: string | number, selectedStyle: any, unselectedStyle: any): void;
29
29
  isShapeInLocPolygons(shapeId: string | number): boolean;
@@ -2493,7 +2493,7 @@ export class MapOverlayManager {
2493
2493
  var mdeListener = google.maps.event.addListener(map, 'dragend', function() {
2494
2494
  if(map.getZoom() >= 12 && map.getZoom() <= 17) {
2495
2495
  //console.log('SACadastral, map on dragend, zoom >= 12 and zoom <= 17');
2496
- map.setOptions({ scrollwheel: true });
2496
+ //map.setOptions({ scrollwheel: true });
2497
2497
  eventHandlers["ReloadCadastralData"]({
2498
2498
  type: 'SUCCESS',
2499
2499
  message: 'Reload cadastral data on dragend',
@@ -2502,7 +2502,7 @@ export class MapOverlayManager {
2502
2502
  });
2503
2503
 
2504
2504
  } else {
2505
- map.setOptions({ scrollwheel: false });
2505
+ //map.setOptions({ scrollwheel: false });
2506
2506
  //console.log('SACadastral, map on dragend, zoom < 12 or zoom > 17');
2507
2507
  mapListeners_clear();
2508
2508
  fPolies_clear();
@@ -2525,7 +2525,7 @@ export class MapOverlayManager {
2525
2525
  var mzcListener = google.maps.event.addListener(map, 'zoom_changed', function() {
2526
2526
  if(map.getZoom() >= 12 && map.getZoom() <= 17) {
2527
2527
  //console.log('SACadastral, map on zoom changed, zoom >= 12 and zoom <= 17');
2528
- map.setOptions({ scrollwheel: true });
2528
+ //map.setOptions({ scrollwheel: true });
2529
2529
  eventHandlers["ReloadCadastralData"]({
2530
2530
  type: 'SUCCESS',
2531
2531
  message: 'Reload cadastral data on zoom changed',
@@ -2534,7 +2534,7 @@ export class MapOverlayManager {
2534
2534
  });
2535
2535
  } else {
2536
2536
  //console.log('SACadastral, map on zoom changed, zoom < 12 or zoom > 17');
2537
- map.setOptions({ scrollwheel: false });
2537
+ //map.setOptions({ scrollwheel: false });
2538
2538
  mapListeners_clear();
2539
2539
  fPolies_clear();
2540
2540
  if(map.getZoom() < 12) {
@@ -2556,7 +2556,7 @@ export class MapOverlayManager {
2556
2556
  var mbcListener = google.maps.event.addListenerOnce(map, 'bounds_changed', function() {
2557
2557
  if(map.getZoom() >= 12 && map.getZoom() <= 17) {
2558
2558
  //console.log('SACadastral, map on bounds changed, zoom >= 12 and zoom <= 17');
2559
- map.setOptions({ scrollwheel: true });
2559
+ //map.setOptions({ scrollwheel: true });
2560
2560
  eventHandlers["ReloadCadastralData"]({
2561
2561
  type: 'SUCCESS',
2562
2562
  message: 'Reload cadastral data on bounds changed',
@@ -2565,7 +2565,7 @@ export class MapOverlayManager {
2565
2565
  });
2566
2566
  } else {
2567
2567
  //console.log('SACadastral, map on bounds changed, zoom < 12 or zoom > 17');
2568
- map.setOptions({ scrollwheel: false });
2568
+ //map.setOptions({ scrollwheel: false });
2569
2569
  mapListeners_clear();
2570
2570
  fPolies_clear();
2571
2571
  if(map.getZoom() < 12) {
@@ -2818,6 +2818,192 @@ export class MapOverlayManager {
2818
2818
  SACadastral_DrawSACadastral(saCadastralJson, offsetX, offsetY, vmWidth, isDashboard, fitBounds);
2819
2819
  }
2820
2820
 
2821
+ function Display_DrawGPRegions(locationsJson, selectedRegion, offsetX, offsetY) {
2822
+ var polygon = null;
2823
+ locations = locationsJson;
2824
+
2825
+ locations.forEach(function (location) {
2826
+ if(location.id == selectedRegion || selectedRegion === 0) {
2827
+ if (location && location.poly && location.poly.length > 0) {
2828
+ var dp = google.maps.geometry.encoding.decodePath(location.poly, 5);
2829
+
2830
+ polygon = new google.maps.Polygon({
2831
+ map: map,
2832
+ path: dp,
2833
+ strokeColor: '#000000',
2834
+ strokeOpacity: 1,
2835
+ strokeWeight: 3,
2836
+ fillColor: '#000000',
2837
+ fillOpacity: 0.3,
2838
+ id: location.id,
2839
+ content: location.regionName,
2840
+ zIndex: 10000
2841
+ });
2842
+ fpolies.push(polygon);
2843
+ }
2844
+ }
2845
+ });
2846
+ }
2847
+
2848
+ function Display_DrawGSByRegion(locationsJson, offsetX, offsetY, vMapWidth) {
2849
+
2850
+ locations = locationsJson;
2851
+ bounds = new google.maps.LatLngBounds();
2852
+ var mapPanned = false;
2853
+
2854
+ locations.forEach(function (location) {
2855
+
2856
+ var mpos = new google.maps.LatLng(location.latitude,location.longitude);
2857
+ bounds.extend(new google.maps.LatLng(location.latitude,location.longitude));
2858
+
2859
+ var parser = new DOMParser();
2860
+
2861
+ var svgIconString = '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">';
2862
+ svgIconString += '<g transform="translate(0.5, 4)"><path d="M0,0 32,0 16,27.7Z" stroke="#000000" stroke-width="1" fill="'+location.iconColor+'" fill-opacity="0.9"></path></g>';
2863
+ svgIconString += '</svg>';
2864
+
2865
+ var svgIcon = parser.parseFromString(svgIconString, 'image/svg+xml').documentElement;
2866
+
2867
+ var fmarker = new google.maps.marker.AdvancedMarkerElement({
2868
+ map: map,
2869
+ position: mpos,
2870
+ content: svgIcon,
2871
+ zIndex: 10002,
2872
+ });
2873
+ fmarker.setAttribute("id", location.id+'|'+location.Name+'|'+location.CompanyName+'|'+location.JSEAbbreviation+'|'+location.Label+'|'+location.Capacity+'|'+location.SagisCode);
2874
+ fmarkers.push(fmarker);
2875
+ });
2876
+
2877
+ if(locations.length > 1) {
2878
+ var boundsChangedListener = google.maps.event.addListenerOnce(map, 'bounds_changed', function () {
2879
+ if(!mapPanned) {
2880
+
2881
+ var psw = map.getProjection().fromLatLngToPoint(bounds.getSouthWest());
2882
+ var pne = map.getProjection().fromLatLngToPoint(bounds.getNorthEast());
2883
+
2884
+ var zoom = map.getZoom();
2885
+ var scale = 1 << zoom;
2886
+
2887
+ if((pne.x - psw.x)*scale >= vMapWidth) {
2888
+ map.setZoom(zoom-1);
2889
+ }
2890
+
2891
+ if (map.getZoom() > 16) {
2892
+ map.setZoom(16);
2893
+ }
2894
+
2895
+ offsetCenter(bounds.getCenter(), offsetX, offsetY);
2896
+ mapPanned = !mapPanned;
2897
+ }
2898
+ });
2899
+ mapListeners.push(boundsChangedListener);
2900
+
2901
+ map.fitBounds(bounds);
2902
+
2903
+ } else if(locations.length == 1) {
2904
+
2905
+
2906
+ var boundsChangedListener = google.maps.event.addListenerOnce(map, 'bounds_changed', function () {
2907
+ if(!mapPanned) {
2908
+
2909
+ offsetCenter(map.getCenter(), offsetX, offsetY);
2910
+ mapPanned = !mapPanned;
2911
+
2912
+ }
2913
+ });
2914
+
2915
+ map.panTo(new google.maps.LatLng(locations[0].latitude,locations[0].longitude));
2916
+ map.setZoom(9);
2917
+
2918
+ }
2919
+ //map.fitBounds(bounds);
2920
+ }
2921
+
2922
+ function GPRegions_DrawProductionRegions(gpRegionsJson, gsByRegionJson, selectedRegion, offsetX, offsetY, vMapWidth, isDashboard) {
2923
+ locations = gpRegionsJson;
2924
+
2925
+ mapListeners_clear();
2926
+ polygonListeners_clear();
2927
+ markerListeners_clear();
2928
+ fmarkers_clear();
2929
+ fPolies_clear();
2930
+
2931
+ Display_DrawGPRegions(gpRegionsJson, selectedRegion, offsetX, offsetY);
2932
+ GPRegions_BindPolyEvents(isDashboard);
2933
+
2934
+ Display_DrawGSByRegion(gsByRegionJson, offsetX, offsetY, vMapWidth);
2935
+ GSByRegion_BindPolyEvents(isDashboard);
2936
+ }
2937
+
2938
+ function GPRegions_BindPolyEvents(isDashboard) {
2939
+ deleteTooltip();
2940
+
2941
+ fpolies.forEach(function (poly) {
2942
+ polygonListeners.push(google.maps.event.addListener(poly, 'mouseover', function (event) {
2943
+ poly.setOptions({strokeColor: '#f1a81e', strokeWeight: 3, zIndex: 10012});
2944
+ deleteTooltip();
2945
+ injectTooltip(event, poly.content);
2946
+ }));
2947
+ polygonListeners.push(google.maps.event.addListener(poly, 'mousemove', moveTooltip));
2948
+ polygonListeners.push(google.maps.event.addListener(poly, 'mouseout', function(event) {
2949
+ poly.setOptions({strokeColor: '#000000', strokeWeight: 3, zIndex: 10002});
2950
+ deleteTooltip();
2951
+ }));
2952
+ if(!isDashboard) {
2953
+ polygonListeners.push(google.maps.event.addListener(poly, 'click', function (event) {
2954
+ deleteTooltip();
2955
+ eventHandlers["CPRPolyOnClick"](this.id);
2956
+ }));
2957
+ }
2958
+ });
2959
+ }
2960
+
2961
+ function GSByRegion_BindPolyEvents(isDashboard) {
2962
+
2963
+ deleteTooltip();
2964
+
2965
+ fmarkers.forEach(function (marker) {
2966
+ var ttc = marker.id.split('|');
2967
+ var ttdata = '<b>'+ttc[1]+'</b><br>';
2968
+ ttdata += 'Company: '+ttc[2]+' ('+ttc[3]+')<br>';
2969
+ ttdata += 'Type: '+ttc[4]+'<br>';
2970
+ if(parseInt(ttc[5]) > 0) {
2971
+ ttdata += 'Capacity: '+ttc[5]+'t<br>';
2972
+ } else {
2973
+ ttdata += 'Capacity: n/a<br>';
2974
+ }
2975
+ if(parseInt(ttc[6]) > 0) {
2976
+ ttdata += 'Sagis Code: '+ttc[6];
2977
+ } else {
2978
+ ttdata += 'Sagis Code: n/a';
2979
+ }
2980
+ var mclickListener = marker.addListener('click', function (event) {
2981
+ eventHandlers["GSMarkerOnClick"](this.id);
2982
+ });
2983
+ markerListeners.push(mclickListener);
2984
+
2985
+ var moverListener = marker.content.addEventListener('mouseover', function (event) {
2986
+ deleteTooltip();
2987
+ injectMarkerTooltip(event, ttdata);
2988
+ });
2989
+ markerListeners.push(moverListener);
2990
+
2991
+ var mmoveListener = marker.content.addEventListener('mousemove', function (event) {
2992
+ moveMarkerTooltip(event);
2993
+ });
2994
+ markerListeners.push(mmoveListener);
2995
+
2996
+ var moutListener = marker.content.addEventListener('mouseout', function (event) {
2997
+ deleteTooltip(event);
2998
+ });
2999
+ markerListeners.push(moutListener);
3000
+ });
3001
+ }
3002
+
3003
+ _this.RenderGPRegions = function(gpRegionsJson, gsByRegionJson, selectedRegion, offsetX, offsetY, vMapWidth, isDashboard) {
3004
+ GPRegions_DrawProductionRegions(gpRegionsJson, gsByRegionJson, selectedRegion, offsetX, offsetY, vMapWidth, isDashboard);
3005
+ }
3006
+
2821
3007
  _this.NDVI_AddOverlay_DEA = function (locationJson, ndviTileURL, validGMTiles, eosLocationCropperRefId, eosViewId, spinnerURL, spinnerLat, spinnerLon, paletteId, colorMapTypeIdValue, isFullView, onComplete) {
2822
3008
 
2823
3009
  //console.log('_this.NDVI_AddOverlay_DEA');
@@ -2867,8 +3053,6 @@ export class MapOverlayManager {
2867
3053
  spinnerImg.height = 120;
2868
3054
  spinnerImg.style.transform = 'translate(0, 50%)';
2869
3055
  const position = new google.maps.LatLng(centerLat, centerLng);
2870
-
2871
- //console.log(spinnerImg);
2872
3056
 
2873
3057
  var spinnerMarker = new google.maps.marker.AdvancedMarkerElement({
2874
3058
  map: map,