summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/networkMapApp/src/services/mapImagesService.ts
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/apps/networkMapApp/src/services/mapImagesService.ts')
-rw-r--r--sdnr/wt/odlux/apps/networkMapApp/src/services/mapImagesService.ts54
1 files changed, 54 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/apps/networkMapApp/src/services/mapImagesService.ts b/sdnr/wt/odlux/apps/networkMapApp/src/services/mapImagesService.ts
new file mode 100644
index 000000000..c414b15c9
--- /dev/null
+++ b/sdnr/wt/odlux/apps/networkMapApp/src/services/mapImagesService.ts
@@ -0,0 +1,54 @@
+/**
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt odlux
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+
+import * as mapboxgl from 'mapbox-gl';
+import apartment from '../../icons/apartment.png';
+import datacenter from '../../icons/datacenter.png';
+import factory from '../../icons/factory.png';
+import lamp from '../../icons/lamp.png';
+
+type ImagesLoaded = (allImagesLoaded: boolean) => void;
+type MapImages = {name: string, url: string}
+
+export const Images : MapImages[] = [{name: 'data-center', url: datacenter}, {name: 'house', url: apartment}, {name: 'factory', url: factory},{name: 'lamp', url: lamp}] ;
+
+export const addImages = (map: mapboxgl.Map, callback?: ImagesLoaded) =>{
+
+ Images.forEach(image => {
+
+ map.loadImage(
+ image.url,
+ function (error: any, img: any) {
+ if (error) throw error;
+ map.addImage(image.name, img);
+ allImagesLoaded(map, callback);
+ });
+ });
+}
+
+const allImagesLoaded = (map: mapboxgl.Map, callback?: ImagesLoaded) =>{
+
+ const loadedImages = Images.map(image =>{
+ return map.hasImage(image.name);
+ });
+
+ const allImagesLoaded = loadedImages.filter(el => !el);
+ if(allImagesLoaded.length===0){
+ callback && callback(true);
+ }
+} \ No newline at end of file