Skip to content

Commit

Permalink
tileUrlを自動追加
Browse files Browse the repository at this point in the history
  • Loading branch information
naogify committed Dec 16, 2024
1 parent 0b92927 commit ec33e9c
Showing 1 changed file with 33 additions and 52 deletions.
85 changes: 33 additions & 52 deletions bin/configToMenuYAML.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
const fs = require('fs');
const yaml = require('js-yaml');

console.log('configToMenuYAML.js');

// タイルレイヤー名から3桁の短縮IDを生成する関数
const generateShortId = (tileLayerName) => {
const hash = Array.from(tileLayerName)
Expand All @@ -13,6 +15,31 @@ const generateShortId = (tileLayerName) => {
); // 3文字のIDを生成
};

const createData = (id, item, isCustomDataType) => {
const data = {
id: id,
type: 'data',
tileId: item.タイルレイヤー名,
};

if (item.レイヤー色) {
data.metadata = { color: item.レイヤー色 };
}

if (isCustomDataType && isCustomDataType !== 'fiware') {
data.metadata = {
dataType: item.データ種別,
tileUrl: item.データ参照先,
}
}

if (item.タイルレイヤー名) {
data.shortId = generateShortId(item.タイルレイヤー名)
}

return data;
}

const configToMenuYAML = (config, outputFile) => {
const app = {
name: 'スマートマップ',
Expand All @@ -33,9 +60,10 @@ const configToMenuYAML = (config, outputFile) => {
const menu = app.menus['都市情報一覧'].items;

config.forEach(item => {
const { 大カテゴリー, 中カテゴリー, メニュータイトル, タイルレイヤー名, データ種別, レイヤー色, データ参照先 } = item;
const { 大カテゴリー, 中カテゴリー, メニュータイトル, データ種別 } = item;
console.log(item);

const isCustomDataType = データ種別 === 'fiware' || データ種別 === 'raster';
const isCustomDataType = データ種別 === 'raster' || データ種別 === 'vector' || データ種別 === 'datapng' || データ種別 === 'fiware';

if (!大カテゴリー && 中カテゴリー) {
throw new Error('中カテゴリーを指定する場合は、大カテゴリーも指定してください');
Expand All @@ -60,22 +88,7 @@ const configToMenuYAML = (config, outputFile) => {
throw new Error(`メニュータイトル: ${大カテゴリー}/${中カテゴリー}/${メニュータイトル} は重複しています`);
}

const data = {
id: `${大カテゴリー}/${中カテゴリー}/${メニュータイトル}`,
type: 'data',
tileId: タイルレイヤー名,
};

if (レイヤー色) {
data.metadata = { color: レイヤー色 };
}

if (isCustomDataType) {
data.dataType = データ種別;
data.shortId = generateShortId(データ参照先) // Fiwareの場合はデータ参照先を使用
} else {
data.shortId = generateShortId(タイルレイヤー名)
}
const data = createData(`${大カテゴリー}/${中カテゴリー}/${メニュータイトル}`, item, isCustomDataType);

menu[大カテゴリー].items[中カテゴリー].items[メニュータイトル] = data;
return;
Expand All @@ -87,23 +100,7 @@ const configToMenuYAML = (config, outputFile) => {
throw new Error(`メニュータイトル: ${大カテゴリー}/${メニュータイトル} は重複しています`);
}

const data = {
id: `${大カテゴリー}/${メニュータイトル}`,
type: 'data',
tileId: タイルレイヤー名,
};

if (レイヤー色) {
data.metadata = { color: レイヤー色 };
}

if (isCustomDataType) {
data.dataType = データ種別;
data.shortId = generateShortId(データ参照先) // Fiwareの場合はデータ参照先を使用
} else {
data.shortId = generateShortId(タイルレイヤー名)
}

const data = createData(`${大カテゴリー}/${メニュータイトル}`, item, isCustomDataType);
menu[大カテゴリー].items[メニュータイトル] = data;
return;
}
Expand All @@ -114,23 +111,7 @@ const configToMenuYAML = (config, outputFile) => {
throw new Error(`メニュータイトル: ${メニュータイトル} は重複しています`);
}

const data = {
id: メニュータイトル,
type: 'data',
tileId: タイルレイヤー名,
};

if (レイヤー色) {
data.metadata = { color: レイヤー色 };
}

if (isCustomDataType) {
data.dataType = データ種別;
data.shortId = generateShortId(データ参照先) // Fiwareの場合はデータ参照先を使用
} else {
data.shortId = generateShortId(タイルレイヤー名)
}

const data = createData(メニュータイトル, item, isCustomDataType);
menu[メニュータイトル] = data;

return;
Expand Down

0 comments on commit ec33e9c

Please sign in to comment.