From ff83f79d82aa61d55836361cb204339d3d0f7f88 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 23 Mar 2022 21:05:48 +0800 Subject: [PATCH 01/12] fix: check factory layer at rendercomplete event --- src/lib/map.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib/map.ts b/src/lib/map.ts index 2f41306..0599216 100644 --- a/src/lib/map.ts +++ b/src/lib/map.ts @@ -473,6 +473,11 @@ export class OLMap { // eslint-disable-next-line @typescript-eslint/no-misused-promises map.on('moveend', move) + // https://stackoverflow.com/a/54441119 + // After any layer is loaded, check onMoved event for the first time. + // eslint-disable-next-line @typescript-eslint/no-misused-promises + map.on('rendercomplete', move) + map.on('zoomend', () => { const view = map.getView() // eslint-disable-next-line @typescript-eslint/no-non-null-assertion From 24ea3becf07a7fb2fa62fd1a2bbcab6cc013e165 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 23 Mar 2022 21:18:47 +0800 Subject: [PATCH 02/12] feat: debounce getFactories method --- package-lock.json | 42 ++++++++++++++++++++++++++++++++++++++++++ package.json | 2 ++ src/components/Map.vue | 19 +++++++++++++------ 3 files changed, 57 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82965ce..02b0237 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "axios": "^0.19.0", "copy-to-clipboard": "^3.3.1", "core-js": "^3.4.2", + "lodash.debounce": "^4.0.8", "register-service-worker": "^1.6.2", "vue": "^2.6.10", "vue-carousel": "^0.18.0", @@ -23,6 +24,7 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/vue": "^5.6.1", "@types/jest": "^24.9.1", + "@types/lodash.debounce": "^4.0.6", "@types/ol": "^6.4.2", "@typescript-eslint/eslint-plugin": "^2.8.0", "@typescript-eslint/parser": "^3.10.1", @@ -1969,6 +1971,21 @@ "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", "dev": true }, + "node_modules/@types/lodash": { + "version": "4.14.180", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.180.tgz", + "integrity": "sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==", + "dev": true + }, + "node_modules/@types/lodash.debounce": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz", + "integrity": "sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==", + "dev": true, + "dependencies": { + "@types/lodash": "*" + } + }, "node_modules/@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -12361,6 +12378,11 @@ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, "node_modules/lodash.defaultsdeep": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", @@ -21414,6 +21436,21 @@ "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", "dev": true }, + "@types/lodash": { + "version": "4.14.180", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.180.tgz", + "integrity": "sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==", + "dev": true + }, + "@types/lodash.debounce": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz", + "integrity": "sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==", + "dev": true, + "requires": { + "@types/lodash": "*" + } + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -30196,6 +30233,11 @@ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, "lodash.defaultsdeep": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", diff --git a/package.json b/package.json index f52b101..976258b 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "axios": "^0.19.0", "copy-to-clipboard": "^3.3.1", "core-js": "^3.4.2", + "lodash.debounce": "^4.0.8", "register-service-worker": "^1.6.2", "vue": "^2.6.10", "vue-carousel": "^0.18.0", @@ -27,6 +28,7 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/vue": "^5.6.1", "@types/jest": "^24.9.1", + "@types/lodash.debounce": "^4.0.6", "@types/ol": "^6.4.2", "@typescript-eslint/eslint-plugin": "^2.8.0", "@typescript-eslint/parser": "^3.10.1", diff --git a/src/components/Map.vue b/src/components/Map.vue index 6c31277..7de8318 100644 --- a/src/components/Map.vue +++ b/src/components/Map.vue @@ -28,6 +28,7 @@