Merge pull request #1633 from Terny22/improvement/maps-scroll-zooming-setting
Added 'Disable scroll zooming' setting for all map types
This commit is contained in:
commit
bad855027b
File diff suppressed because one or more lines are too long
@ -19,7 +19,7 @@ var gmGlobals = {
|
||||
}
|
||||
|
||||
export default class TbGoogleMap {
|
||||
constructor($containerElement, utils, initCallback, defaultZoomLevel, dontFitMapBounds, minZoomLevel, gmApiKey, gmDefaultMapType) {
|
||||
constructor($containerElement, utils, initCallback, defaultZoomLevel, dontFitMapBounds, disableScrollZooming, minZoomLevel, gmApiKey, gmDefaultMapType) {
|
||||
|
||||
var tbMap = this;
|
||||
this.utils = utils;
|
||||
@ -44,7 +44,7 @@ export default class TbGoogleMap {
|
||||
function initGoogleMap() {
|
||||
|
||||
tbMap.map = new google.maps.Map($containerElement[0], { // eslint-disable-line no-undef
|
||||
scrollwheel: true,
|
||||
scrollwheel: !disableScrollZooming,
|
||||
mapTypeId: getGoogleMapTypeId(tbMap.defaultMapType),
|
||||
zoom: tbMap.defaultZoomLevel || 8
|
||||
});
|
||||
|
||||
@ -20,7 +20,7 @@ const maxZoom = 4;
|
||||
|
||||
export default class TbImageMap {
|
||||
|
||||
constructor(ctx, $containerElement, utils, initCallback, imageUrl, posFunction, imageEntityAlias, imageUrlAttribute) {
|
||||
constructor(ctx, $containerElement, utils, initCallback, imageUrl, disableScrollZooming, posFunction, imageEntityAlias, imageUrlAttribute) {
|
||||
|
||||
this.ctx = ctx;
|
||||
this.utils = utils;
|
||||
@ -34,6 +34,7 @@ export default class TbImageMap {
|
||||
this.height = 0;
|
||||
this.markers = [];
|
||||
this.initCallback = initCallback;
|
||||
this.disableScrollZooming = disableScrollZooming;
|
||||
|
||||
if (angular.isDefined(posFunction) && posFunction.length > 0) {
|
||||
try {
|
||||
@ -165,6 +166,7 @@ export default class TbImageMap {
|
||||
this.map = L.map(this.$containerElement[0], {
|
||||
minZoom: 1,
|
||||
maxZoom: maxZoom,
|
||||
scrollWheelZoom: !this.disableScrollZooming,
|
||||
center: center,
|
||||
zoom: 1,
|
||||
crs: L.CRS.Simple,
|
||||
|
||||
@ -78,28 +78,29 @@ export default class TbMapWidgetV2 {
|
||||
tbMap.tooltipActionsMap[descriptor.name] = descriptor;
|
||||
});
|
||||
|
||||
if (mapProvider === 'google-map') {
|
||||
this.map = new TbGoogleMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, minZoomLevel, settings.gmApiKey, settings.gmDefaultMapType);
|
||||
} else if (mapProvider === 'openstreet-map') {
|
||||
let openStreetMapProvider = {};
|
||||
if (mapProvider === 'google-map') {
|
||||
this.map = new TbGoogleMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, settings.disableScrollZooming, minZoomLevel, settings.gmApiKey, settings.gmDefaultMapType);
|
||||
} else if (mapProvider === 'openstreet-map') {
|
||||
if (settings.useCustomProvider && settings.customProviderTileUrl) {
|
||||
openStreetMapProvider.name = settings.customProviderTileUrl;
|
||||
openStreetMapProvider.isCustom = true;
|
||||
} else {
|
||||
openStreetMapProvider.name = settings.mapProvider;
|
||||
}
|
||||
|
||||
this.map = new TbOpenStreetMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, minZoomLevel, openStreetMapProvider);
|
||||
this.map = new TbOpenStreetMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, settings.disableScrollZooming, minZoomLevel, openStreetMapProvider);
|
||||
} else if (mapProvider === 'here') {
|
||||
this.map = new TbOpenStreetMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, minZoomLevel, settings.mapProvider, settings.credentials);
|
||||
openStreetMapProvider.name = settings.mapProvider;
|
||||
this.map = new TbOpenStreetMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, settings.disableScrollZooming, minZoomLevel, openStreetMapProvider, settings.credentials);
|
||||
} else if (mapProvider === 'image-map') {
|
||||
this.map = new TbImageMap(this.ctx, $element, this.utils, initCallback,
|
||||
settings.mapImageUrl,
|
||||
settings.disableScrollZooming,
|
||||
settings.posFunction,
|
||||
settings.imageEntityAlias,
|
||||
settings.imageUrlAttribute);
|
||||
} else if (mapProvider === 'tencent-map') {
|
||||
this.map = new TbTencentMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, minZoomLevel, settings.tmApiKey, settings.tmDefaultMapType);
|
||||
this.map = new TbTencentMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, settings.disableScrollZooming, minZoomLevel, settings.tmApiKey, settings.tmDefaultMapType);
|
||||
}
|
||||
|
||||
|
||||
@ -938,6 +939,11 @@ const commonMapSettingsSchema =
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"disableScrollZooming": {
|
||||
"title": "Disable scroll zooming",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"latKeyName": {
|
||||
"title": "Latitude key name",
|
||||
"type": "string",
|
||||
@ -1078,6 +1084,7 @@ const commonMapSettingsSchema =
|
||||
"form": [
|
||||
"defaultZoomLevel",
|
||||
"fitMapBounds",
|
||||
"disableScrollZooming",
|
||||
"latKeyName",
|
||||
"lngKeyName",
|
||||
"showLabel",
|
||||
@ -1189,6 +1196,11 @@ const imageMapSettingsSchema =
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
"disableScrollZooming": {
|
||||
"title": "Disable scroll zooming",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"xPosKeyName": {
|
||||
"title": "X position key name",
|
||||
"type": "string",
|
||||
@ -1306,6 +1318,7 @@ const imageMapSettingsSchema =
|
||||
},
|
||||
"imageEntityAlias",
|
||||
"imageUrlAttribute",
|
||||
"disableScrollZooming",
|
||||
"xPosKeyName",
|
||||
"yPosKeyName",
|
||||
"showLabel",
|
||||
|
||||
@ -19,7 +19,7 @@ import 'leaflet-providers';
|
||||
|
||||
export default class TbOpenStreetMap {
|
||||
|
||||
constructor($containerElement, utils, initCallback, defaultZoomLevel, dontFitMapBounds, minZoomLevel, mapProvider, credentials) {
|
||||
constructor($containerElement, utils, initCallback, defaultZoomLevel, dontFitMapBounds, disableScrollZooming, minZoomLevel, mapProvider, credentials) {
|
||||
|
||||
this.utils = utils;
|
||||
this.defaultZoomLevel = defaultZoomLevel;
|
||||
@ -33,13 +33,17 @@ export default class TbOpenStreetMap {
|
||||
};
|
||||
}
|
||||
|
||||
if (mapProvider.startsWith("HERE.")) {
|
||||
if (mapProvider.name.startsWith("HERE.")) {
|
||||
credentials.app_id = credentials.app_id || "AhM6TzD9ThyK78CT3ptx";
|
||||
credentials.app_code = credentials.app_code || "p6NPiITB3Vv0GMUFnkLOOg";
|
||||
}
|
||||
|
||||
this.map = L.map($containerElement[0]).setView([0, 0], this.defaultZoomLevel || 8);
|
||||
|
||||
if (disableScrollZooming) {
|
||||
this.map.scrollWheelZoom.disable();
|
||||
}
|
||||
|
||||
var tileLayer = mapProvider.isCustom ? L.tileLayer(mapProvider.name) : L.tileLayer.provider(mapProvider.name, credentials);
|
||||
tileLayer.addTo(this.map);
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ var tmGlobals = {
|
||||
}
|
||||
|
||||
export default class TbTencentMap {
|
||||
constructor($containerElement, utils, initCallback, defaultZoomLevel, dontFitMapBounds, minZoomLevel, tmApiKey, tmDefaultMapType) {
|
||||
constructor($containerElement, utils, initCallback, defaultZoomLevel, dontFitMapBounds, disableScrollZooming, minZoomLevel, tmApiKey, tmDefaultMapType) {
|
||||
var tbMap = this;
|
||||
this.utils = utils;
|
||||
this.defaultZoomLevel = defaultZoomLevel;
|
||||
@ -42,7 +42,7 @@ export default class TbTencentMap {
|
||||
|
||||
function initTencentMap() {
|
||||
tbMap.map = new qq.maps.Map($containerElement[0], { // eslint-disable-line no-undef
|
||||
scrollwheel: true,
|
||||
scrollwheel: !disableScrollZooming,
|
||||
mapTypeId: getTencentMapTypeId(tbMap.defaultMapType),
|
||||
zoom: tbMap.defaultZoomLevel || 8
|
||||
});
|
||||
|
||||
@ -264,7 +264,7 @@ function tripAnimationController($document, $scope, $log, $http, $timeout, $filt
|
||||
}
|
||||
}
|
||||
vm.dontFitMapBounds = vm.ctx.settings.fitMapBounds === false;
|
||||
vm.map = new TbOpenStreetMap(vm.ctx.$element, vm.utils, initCallback, vm.defaultZoomLevel, vm.dontFitMapBounds, null, vm.staticSettings.mapProvider);
|
||||
vm.map = new TbOpenStreetMap(vm.ctx.$element, vm.utils, initCallback, vm.defaultZoomLevel, vm.dontFitMapBounds, vm.staticSettings.disableScrollZooming, null, vm.staticSettings.mapProvider);
|
||||
vm.map.bounds = vm.map.createBounds();
|
||||
vm.map.invalidateSize(true);
|
||||
vm.map.bounds = vm.map.createBounds();
|
||||
@ -284,7 +284,8 @@ function tripAnimationController($document, $scope, $log, $http, $timeout, $filt
|
||||
staticSettings.disabledButtonColor = tinycolor(vm.widgetConfig.color).setAlpha(0.3).toRgbString();
|
||||
staticSettings.polygonColor = tinycolor(vm.ctx.settings.polygonColor).toHexString();
|
||||
staticSettings.polygonStrokeColor = tinycolor(vm.ctx.settings.polygonStrokeColor).toHexString();
|
||||
staticSettings.mapProvider = vm.ctx.settings.mapProvider || "OpenStreetMap.Mapnik";
|
||||
staticSettings.mapProvider = vm.ctx.settings.mapProvider ? {name: vm.ctx.settings.mapProvider} : {name: "OpenStreetMap.Mapnik"};
|
||||
staticSettings.disableScrollZooming = vm.ctx.settings.disableScrollZooming || false;
|
||||
staticSettings.latKeyName = vm.ctx.settings.latKeyName || "latitude";
|
||||
staticSettings.lngKeyName = vm.ctx.settings.lngKeyName || "longitude";
|
||||
staticSettings.polKeyName = vm.ctx.settings.polKeyName || "coordinates";
|
||||
@ -328,6 +329,12 @@ function tripAnimationController($document, $scope, $log, $http, $timeout, $filt
|
||||
iconSize: [30, 30],
|
||||
iconAnchor: [15, 15]
|
||||
});
|
||||
|
||||
if (vm.ctx.settings.useCustomProvider && vm.ctx.settings.customProviderTileUrl) {
|
||||
staticSettings.mapProvider.name = vm.ctx.settings.customProviderTileUrl;
|
||||
staticSettings.mapProvider.isCustom = true;
|
||||
}
|
||||
|
||||
if (angular.isDefined(vm.ctx.settings.markerImage)) {
|
||||
staticSettings.icon = L.icon({
|
||||
iconUrl: vm.ctx.settings.markerImage,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user