1<?php 2 3/** 4 * webtrees: online genealogy 5 * Copyright (C) 2023 webtrees development team 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <https://www.gnu.org/licenses/>. 16 */ 17 18declare(strict_types=1); 19 20namespace Fisharebest\Webtrees\Module; 21 22use Fisharebest\Webtrees\I18N; 23 24/** 25 * Class EsriMaps - use maps within webtrees 26 */ 27class EsriMaps extends AbstractModule implements ModuleMapProviderInterface 28{ 29 use ModuleMapProviderTrait; 30 31 /** 32 * Name of the map provider. 33 * 34 * @return string 35 */ 36 public function title(): string 37 { 38 return /* I18N: Name of a mapping organisation */ I18N::translate('Esri/ArcGIS'); 39 } 40 41 /** 42 * Name of the map provider. 43 * 44 * @return string 45 */ 46 public function description(): string 47 { 48 $link = '<a href="https://maps.esri.com" dir="ltr">maps.esri.com</a>'; 49 50 // I18N: %s is a link/URL 51 return I18N::translate('Create maps using %s.', $link); 52 } 53 54 /** 55 * Should this module be enabled when it is first installed? 56 * 57 * @return bool 58 */ 59 public function isEnabledByDefault(): bool 60 { 61 return false; 62 } 63 64 /** 65 * Parameters to create a TileLayer in LeafletJs. 66 * 67 * @return array<object> 68 */ 69 public function leafletJsTileLayers(): array 70 { 71 return [ 72 (object) [ 73 'attribution' => 'Tiles ©Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012', 74 'default' => true, 75 'label' => 'WorldStreetMap', 76 'maxZoom' => 17, 77 'minZoom' => 2, 78 'url' => 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}', 79 ], 80 (object) [ 81 'attribution' => 'Tiles ©Esri — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community', 82 'default' => false, 83 'label' => 'WorldTopoMap', 84 'maxZoom' => 17, 85 'minZoom' => 2, 86 'url' => 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}', 87 ], 88 (object) [ 89 'attribution' => 'Tiles © Esri — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC', 90 'default' => false, 91 'label' => 'NatGeoWorldMap', 92 'maxZoom' => 12, 93 'minZoom' => 2, 94 'url' => 'https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}', 95 ], 96 ]; 97 } 98} 99