diff --git a/extensions/geolonia/gui/geolonia/geolonia-small.png b/extensions/geolonia/gui/geolonia/geolonia-small.png index 128b9285f..473d0cde6 100644 Binary files a/extensions/geolonia/gui/geolonia/geolonia-small.png and b/extensions/geolonia/gui/geolonia/geolonia-small.png differ diff --git a/extensions/geolonia/gui/geolonia/geolonia.png b/extensions/geolonia/gui/geolonia/geolonia.png index 35712dca2..473d0cde6 100644 Binary files a/extensions/geolonia/gui/geolonia/geolonia.png and b/extensions/geolonia/gui/geolonia/geolonia.png differ diff --git a/extensions/modules/scratch-vm/src/extension-support/geolonia/index.js b/extensions/modules/scratch-vm/src/extension-support/geolonia/index.js index 4e1523233..2adfcdd69 100644 --- a/extensions/modules/scratch-vm/src/extension-support/geolonia/index.js +++ b/extensions/modules/scratch-vm/src/extension-support/geolonia/index.js @@ -9,46 +9,6 @@ const Message = { const AvailableLocales = ['en', 'ja', 'ja-Hira']; -const style = { - "version": 8, - "sources": { - "japan": { - "type": "vector", - "url": "https://cdn.geolonia.com/tiles/japanese-prefectures.json" - } - }, - "glyphs": "https://glyphs.geolonia.com/{fontstack}/{range}.pbf", - "layers": [ - { - "id": "background", - "type": "background", - "paint": { - "background-color": "#222222" - } - }, - { - "id": "prefs", - "type": "fill", - "source": "japan", - "source-layer": "prefectures", - "paint": { - "fill-color": "#333333", - "fill-outline-color": "#444444" - } - }, - { - id: 'point-pref', - type: 'circle', - source: "japan", - "source-layer": "admins", - paint: { - 'circle-radius': 4, - 'circle-color': 'rgba(255, 255, 255, 0.6)', - }, - } - ], -} - class Scratch3GeoloniaBlocks { constructor (runtime) { this.runtime = runtime; @@ -88,6 +48,25 @@ class Scratch3GeoloniaBlocks { }, } }, + { + opcode: 'addLayer', + blockType: BlockType.COMMAND, + text: 'レイヤー [LAYER] を 色 [COLOR] 透明度 [OPACITY] で表示', + arguments: { + LAYER: { + type: ArgumentType.STRING, + defaultValue: '都市計画区域界', + }, + COLOR: { + type: ArgumentType.COLOR, + defaultValue: '#FF0000', + }, + OPACITY: { + type: ArgumentType.NUMBER, + defaultValue: 0.4, + }, + } + }, { opcode: 'flyTo', blockType: BlockType.COMMAND, @@ -224,13 +203,6 @@ class Scratch3GeoloniaBlocks { mapContainer.appendChild(div); this.map = {} - // this.map = new city.Takamatsu.Map({ - // container: '#geolonia-map', - // style: 'https://raw.githubusercontent.com/geolonia/scratch-style/main/style.json', - // center: [args.LNG, args.LAT], - // zoom: args.ZOOM, - // pitch: 0, - // }); this.map = new city.Takamatsu.Map({ container: 'geolonia-map', @@ -264,6 +236,18 @@ class Scratch3GeoloniaBlocks { }) } + addLayer(args) { + if (!this.loaded) { + console.error('まず地図を表示してください。') + return + } + + this.map.loadData(args.LAYER, { + 'fill-color': args.COLOR, + 'fill-opacity': Number(args.OPACITY), + }) + } + zoomTo(args) { if (!this.loaded) { console.error('まず地図を表示してください。') diff --git a/src/lib/libraries/extensions/geolonia/geolonia-small.png b/src/lib/libraries/extensions/geolonia/geolonia-small.png index 128b9285f..473d0cde6 100644 Binary files a/src/lib/libraries/extensions/geolonia/geolonia-small.png and b/src/lib/libraries/extensions/geolonia/geolonia-small.png differ diff --git a/src/lib/libraries/extensions/geolonia/geolonia.png b/src/lib/libraries/extensions/geolonia/geolonia.png index 35712dca2..473d0cde6 100644 Binary files a/src/lib/libraries/extensions/geolonia/geolonia.png and b/src/lib/libraries/extensions/geolonia/geolonia.png differ