diff --git a/.github/workflows/test-postgis.yml b/.github/workflows/test-postgis.yml
index b8246778..893d136c 100644
--- a/.github/workflows/test-postgis.yml
+++ b/.github/workflows/test-postgis.yml
@@ -27,6 +27,10 @@ jobs:
redmine_version: ${{ fromJSON(vars.PLUGIN_TEST_MATRIX_REDMINE_VERSION) }}
ruby_version: ${{ fromJSON(vars.PLUGIN_TEST_MATRIX_RUBY_VERSION) }}
db_version: [12-3.0, 15-3.3]
+ exclude:
+ - redmine_version: 5.0-stable
+ ruby_version: '3.2'
+ - redmine_version: master
services:
postgres:
@@ -62,7 +66,7 @@ jobs:
- name: Install Node/Yarn packages
run: |
- curl -sL https://deb.nodesource.com/setup_16.x | bash -
+ curl -sL https://deb.nodesource.com/setup_20.x | bash -
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
apt-get update --yes --quiet
diff --git a/app/views/gtt_map_layers/_form.html.erb b/app/views/gtt_map_layers/_form.html.erb
index d1282b41..43292ab4 100644
--- a/app/views/gtt_map_layers/_form.html.erb
+++ b/app/views/gtt_map_layers/_form.html.erb
@@ -11,7 +11,7 @@
<%= f.select :layer,
options_for_select(
- ['Image','Tile','MapboxVector','Vector','VectorTile'],
+ ['Image','Tile','MapboxVector','Vector','VectorTile','WebGLTile'],
selected: f.object.layer ),
{ include_blank: t('map_layer.layer_options_select'), required: true }
%>
@@ -22,7 +22,7 @@
<%= f.select :source,
options_for_select(
- ['BingMaps','CartoDB','ImageStatic','ImageWMS','OSM','Raster','Stamen',
+ ['BingMaps','CartoDB','Google','ImageStatic','ImageWMS','OSM','Raster','Stamen',
'TileJSON','TileWMS','UTFGrid','Vector','VectorTile','WMTS','XYZ'],
selected: f.object.source ),
{ include_blank: t('map_layer.source_options_select') }
@@ -55,6 +55,7 @@
'MapboxVector': [],
'Vector': ['Vector'],
'VectorTile': ['VectorTile'],
+ 'WebGLTile': ['Google'],
};
const map_format_config = {
@@ -211,5 +212,19 @@
},
'format': 'ol.format.MVT',
'format_options': {}
+ },{
+ 'name': 'Google Maps',
+ 'layer': 'WebGLTile',
+ 'layer_options': {},
+ 'source': 'Google',
+ 'source_options': {
+ 'key': 'YOUR_API_KEY',
+ 'mapType': 'roadmap',
+ 'language': 'ja_JP',
+ 'scale': 'scaleFactor2x',
+ 'layerTypes': ['layerTraffic'],
+ },
+ 'format': '',
+ 'format_options': {}
}];
diff --git a/package.json b/package.json
index 3055c908..6c463bed 100644
--- a/package.json
+++ b/package.json
@@ -24,9 +24,9 @@
"@mdi/font": "^7.4.47",
"fontfaceobserver": "^2.3.0",
"geojson": "^0.5.0",
- "ol": "^8.2.0",
+ "ol": "^9.0.0",
"ol-ext": "^4.0.14",
- "ol-mapbox-style": "^12.2.0"
+ "ol-mapbox-style": "^12.2.1"
},
"devDependencies": {
"@types/fontfaceobserver": "^2.1.3",
@@ -35,12 +35,12 @@
"@types/jqueryui": "^1.12.21",
"@types/ol-ext": "npm:@siedlerchr/types-ol-ext",
"css-loader": "^6.10.0",
- "sass": "^1.70.0",
- "sass-loader": "^14.1.0",
+ "sass": "^1.71.1",
+ "sass-loader": "^14.1.1",
"style-loader": "^3.3.4",
"ts-loader": "^9.5.1",
"typescript": "^5.2.3",
- "webpack": "^5.90.1",
+ "webpack": "^5.90.3",
"webpack-cli": "^5.1.4"
}
}
diff --git a/src/components/gtt-client/init/layers.ts b/src/components/gtt-client/init/layers.ts
index 7ff11eb0..68d509c3 100644
--- a/src/components/gtt-client/init/layers.ts
+++ b/src/components/gtt-client/init/layers.ts
@@ -194,7 +194,7 @@ function addVectorLayer(this: any, features: Feature[] | null): void {
this.vector.set('title', 'Features');
this.vector.set('displayInLayerSwitcher', false);
- this.vector.on('prerender', () => this.map.flushDeclutterItems());
+ // this.vector.on('prerender', () => this.map.flushDeclutterItems());
// Listen to the moveend event and show message when zoom level is too low
let previousZoom = this.map.getView().getZoom();
@@ -243,13 +243,18 @@ function renderProjectBoundary(this: any): void {
}
this.layerArray.forEach((layer: Layer) => {
if (layer.get('baseLayer')) {
- layer.addFilter(new Mask({
- feature: boundary,
- inner: false,
- fill: new Fill({
- color: [220, 26, 26, 0.1]
- })
- }));
+ if (layer.getRenderSource() instanceof olSource.Google) {
+ // currently Google source does not seem to support filters
+ }
+ else {
+ layer.addFilter(new Mask({
+ feature: boundary,
+ inner: false,
+ fill: new Fill({
+ color: [220, 26, 26, 0.1]
+ })
+ }));
+ }
}
});
}
diff --git a/yarn.lock b/yarn.lock
index 66c2cdd2..db6d3ab2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -966,18 +966,18 @@ ol-ext@^4.0.14:
resolved "https://registry.yarnpkg.com/ol-ext/-/ol-ext-4.0.14.tgz#12389a2131356be2daa4324f83480f67c8b76df1"
integrity sha512-ooTz4D2eXrZ5EdAQZvG0zXh4Jc0cEQDQVTcVu0MdoOpswq550NQbLuA8jRILWesWbpNh/7AnntnLPqmoizI2uA==
-ol-mapbox-style@^12.2.0:
- version "12.2.0"
- resolved "https://registry.yarnpkg.com/ol-mapbox-style/-/ol-mapbox-style-12.2.0.tgz#081eb25270b8e8ed3b697a69b3f7c55f9838b7b6"
- integrity sha512-krod1qyX6IedQ0Hb3Q3FYQE+Dq2cH6qqBrBrYDwwWNx934gw2mCxlvBg7h32Xd++GECwnPn47MOIPqV+M+DwGg==
+ol-mapbox-style@^12.2.1:
+ version "12.2.1"
+ resolved "https://registry.yarnpkg.com/ol-mapbox-style/-/ol-mapbox-style-12.2.1.tgz#12b568f199a8448fd146191b817b93e075eac2f9"
+ integrity sha512-soh8x+8CwlA+e3fd8grotA4XXnm0DSWnpzu5Ef3aEQwpM1o2OfoGPSk/hpjhXL5kFUm79pEyiONTw+kdth2FEQ==
dependencies:
"@mapbox/mapbox-gl-style-spec" "^13.23.1"
mapbox-to-css-font "^2.4.1"
-ol@^8.2.0:
- version "8.2.0"
- resolved "https://registry.yarnpkg.com/ol/-/ol-8.2.0.tgz#145153eab0ea3b5d04f51f46d6c69c224cccd5c3"
- integrity sha512-/m1ddd7Jsp4Kbg+l7+ozR5aKHAZNQOBAoNZ5pM9Jvh4Etkf0WGkXr9qXd7PnhmwiC1Hnc2Toz9XjCzBBvexfXw==
+ol@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/ol/-/ol-9.0.0.tgz#449207b0da5c31f905a030fac141e04935a126a0"
+ integrity sha512-+nYHZYbHrRUTDJ8ryxXPdDoAiaT6Zea02cocmGqsJXs4Oac1fYC9EbTIU2Y7803QcmG3u2MR88RxbksBvK+ZfQ==
dependencies:
color-rgba "^3.0.0"
color-space "^2.0.1"
@@ -1213,17 +1213,17 @@ safe-buffer@^5.1.0:
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-sass-loader@^14.1.0:
- version "14.1.0"
- resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-14.1.0.tgz#43ba90e0cd8a15a1e932e818c525b0115a0ce8a3"
- integrity sha512-LS2mLeFWA+orYxHNu+O18Xe4jR0kyamNOOUsE3NyBP4DvIL+8stHpNX0arYTItdPe80kluIiJ7Wfe/9iHSRO0Q==
+sass-loader@^14.1.1:
+ version "14.1.1"
+ resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-14.1.1.tgz#2c9d2277c5b1c5fe789cd0570c046d8ad23cb7ca"
+ integrity sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==
dependencies:
neo-async "^2.6.2"
-sass@^1.70.0:
- version "1.70.0"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.70.0.tgz#761197419d97b5358cb25f9dd38c176a8a270a75"
- integrity sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==
+sass@^1.71.1:
+ version "1.71.1"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.71.1.tgz#dfb09c63ce63f89353777bbd4a88c0a38386ee54"
+ integrity sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
@@ -1490,10 +1490,10 @@ webpack-sources@^3.2.3:
resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
-webpack@^5.90.1:
- version "5.90.1"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.1.tgz#62ab0c097d7cbe83d32523dbfbb645cdb7c3c01c"
- integrity sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==
+webpack@^5.90.3:
+ version "5.90.3"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.3.tgz#37b8f74d3ded061ba789bb22b31e82eed75bd9ac"
+ integrity sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==
dependencies:
"@types/eslint-scope" "^3.7.3"
"@types/estree" "^1.0.5"