Exemplo n.º 1
0
        private async Task FetchPlacemarkMapImage(MooiPlacemark placemark, string tempPath)
        {
            if (placemark.Type == PlacemarkType.Point)
            {
                var imageBytes = await _hereAdapter.FetchThumbnail(placemark);

                if (imageBytes == null)
                {
                    _logger.Warn($"Was unable to download thumbnail map image for '{placemark.Id}'");
                    return;
                }
                var filePath = Path.Combine(tempPath, _resourceName.CreateFileNameForPlacemarkThumbnail(placemark));
                await _file.WriteBytesAsync(filePath, imageBytes);

                _logger.Info($"A thumbnail map image for '{placemark.Id}' has been successfully downloaded");
            }
        }
Exemplo n.º 2
0
        public MooiPlacemark Create(KmlPlacemark kmlPlacemark, IEnumerable <VenueBase> venues, string reportTempPath)
        {
            var descriptionAndImages = ExtractImagesFromContent(kmlPlacemark.Description);
            var description          = FilterContent(descriptionAndImages.filteredContent);

            var placemark = new MooiPlacemark
            {
                Name           = kmlPlacemark.Name,
                Description    = description,
                AttachedVenues = venues?.ToArray(),
                Coordinates    = kmlPlacemark.Coordinates,
                IconPath       = kmlPlacemark.IconPath
            };

            if (descriptionAndImages.images != null)
            {
                placemark.Images.AddRange(descriptionAndImages.images);
            }

            if (placemark.IconPath != null && !placemark.IconPathIsOnWeb)
            {
                placemark.IconPath = Path.Combine(reportTempPath, placemark.IconPath);
            }

            placemark.ThumbnailMapFilePath = Path.Combine(reportTempPath,
                                                          _resourceName.CreateFileNameForPlacemarkThumbnail(placemark));
            placemark.IsShape = _kmlCalculator.PlacemarkIsShape(placemark);

            if (placemark.IsShape)
            {
                var distanceInMeters = _kmlCalculator.CalculateRouteDistanceInMeters(placemark);
                placemark.Distance = _formatter.FormatDistance(distanceInMeters);
            }

            ExtendPlacemarkWithVenueData(placemark);

            return(placemark);
        }