张延森 2 년 전
부모
커밋
4f67b9446e
3개의 변경된 파일200개의 추가작업 그리고 23개의 파일을 삭제
  1. 0
    5
      src/App.vue
  2. 23
    13
      src/components/Image.vue
  3. 177
    5
      src/utils/resources.js

+ 0
- 5
src/App.vue 파일 보기

@@ -27,11 +27,6 @@ onMounted(() => {
27 27
   const { onStart, onEnd } = scroll(window.document);
28 28
 
29 29
   onStart(() => {
30
-    if (!entranceAudioPlayed.value) {
31
-      entranceAudioRef.value.play()
32
-      entranceAudioPlayed.value = true
33
-    }
34
-
35 30
     fixedLogoHidden.value = true;
36 31
   })
37 32
 

+ 23
- 13
src/components/Image.vue 파일 보기

@@ -123,23 +123,17 @@ const onPlayBtn = () => {
123 123
 
124 124
 //显示地图
125 125
 const onShowMapBtn = () => {
126
-  window.console.log("---");
127 126
   if (props.resource.showMapBtn) {
128
-    window.console.log(props.resource.mapImage, "---");
129 127
     mapImageRef.value && mapImageRef.value.$viewer.show();
130 128
   }
131 129
 };
132 130
 
133 131
 // 显示详情介绍
134 132
 const onShowInfoBtn = () => {
135
-  window.console.log(showInfo,"---");
136
-  
137 133
   showInfo.value=true
138 134
 };
139 135
 
140 136
 const onCloseInfoBtn = () => {
141
-  window.console.log("---");
142
-  
143 137
   showInfo.value=false
144 138
 };
145 139
 
@@ -170,11 +164,26 @@ const onLoad = (e) => {
170 164
       };
171 165
     }
172 166
 
173
-    // if (showGesture.value) {
174
-
175
-    infoStyle.value = { left: `${x - d2 * 2}px`, top: `${centerY - d2}px` };
176
-    // }
167
+    if (props.resource.infoIcon) {
168
+      const pos = props.resource.infoIcon.pos || 'left';
169
+      switch (pos) {
170
+        case 'right':
171
+          infoStyle.value = { left: `${x + d2 * 6}px`, top: `${centerY - d2}px` };
172
+          break;
173
+        case 'top':
174
+          infoStyle.value = { left: `${x + d2}px`, top: `${centerY - d2 * 6}px` };
175
+          break;
176
+        case 'bottom':
177
+          infoStyle.value = { left: `${x + d2}px`, top: `${centerY + d2 * 4}px` };
178
+          break;
179
+        case 'left':
180
+        default:
181
+          infoStyle.value = { left: `${x - d2 * 4}px`, top: `${centerY - d2}px` };
182
+          break;
183
+      }
184
+    }
177 185
   }
186
+
178 187
   if (props.resource.showMapBtn) {
179 188
     const { pos } = props.resource.showMapBtn;
180 189
     const { width, height, naturalHeight, naturalWidth } = e.target;
@@ -207,7 +216,8 @@ const onLoad = (e) => {
207 216
     position: absolute;
208 217
     z-index: 9;
209 218
     .iconfont {
210
-      font-size: 24px;
219
+      color: #333;
220
+      font-size: 40px;
211 221
     }
212 222
   }
213 223
 
@@ -226,7 +236,7 @@ const onLoad = (e) => {
226 236
     position: absolute;
227 237
     width: 170px;
228 238
     height: 70px;
229
-    background: rgba(255, 0, 0, 0.5);
239
+    // background: rgba(255, 0, 0, 0.5);
230 240
     z-index: 10;
231 241
   }
232 242
 
@@ -234,7 +244,7 @@ const onLoad = (e) => {
234 244
     position: absolute;
235 245
     width: 64px;
236 246
     height: 64px;
237
-    background: rgba(255, 0, 0, 0.5);
247
+    // background: rgba(255, 0, 0, 0.5);
238 248
     z-index: 10;
239 249
 
240 250
     & > audio {

+ 177
- 5
src/utils/resources.js 파일 보기

@@ -39,7 +39,64 @@ export const map = "./map.png";
39 39
 // import img22 from '@/assets/images/22.jpg';
40 40
 // import img23 from '@/assets/images/23.jpg';
41 41
 
42
-const infoImage = ["./infoimage/1长江大桥.jpg"];
42
+const infoImage = [
43
+  "./infoimage/1长江大桥.jpg",
44
+  "./infoimage/2阅江楼.jpg",
45
+  "./infoimage/3秦淮河.jpg",
46
+  "./infoimage/4乌衣巷.jpg",
47
+  "./infoimage/5燕子矶.jpg",
48
+  "./infoimage/6栖霞山.jpg",
49
+  "./infoimage/7朝天宫.jpg",
50
+  "./infoimage/8梁洲.jpg",
51
+  "./infoimage/9后湖映月.jpg",
52
+  "./infoimage/10台城.jpg",
53
+  "./infoimage/11紫金山.jpg",
54
+  "./infoimage/12石头城.jpg",
55
+  "./infoimage/13莫愁湖公园.jpg",
56
+  "./infoimage/14赏心亭.jpg",
57
+  "./infoimage/15长干里(1).jpg",
58
+  "./infoimage/16大报恩寺.jpg",
59
+  "./infoimage/17凤凰台.jpg",
60
+  "./infoimage/18桃叶渡.jpg",
61
+  "./infoimage/19雨花台.jpg",
62
+  "./infoimage/20牛首山.jpg",
63
+  "./infoimage/21石臼湖.jpg",
64
+  "./infoimage/21石臼湖.png",
65
+  "./infoimage/22东山.jpg",
66
+  "./infoimage/23瞻园.jpg",
67
+  "./infoimage/24文德桥.jpg",
68
+  "./infoimage/25随园.jpg",
69
+  "./infoimage/26世界文学客厅.jpg",
70
+];
71
+
72
+const infoTexts = [
73
+  "南京长江大桥位于南京市鼓楼区下关和浦口区桥北之间,是长江上第一座由中国自行设计和建造的双层式铁路、公路两用桥梁,具有极大的经济意义、政治意义和战略意义,有“争气桥”之称。大桥由正桥、南北桥头堡和南北引桥组成,正桥分上下两层,上层为公路桥,正桥长1577米,4车道的宽度,车行道宽15米,可容4辆大型汽车并行,两侧人行道各宽2.25米。下层为铁路桥,全长6772米,宽14米,铺设双轨,两列火车可同时对开。正桥长1576米,其余为引桥,公路引桥长3012米,宽19.5米。",
74
+  "阅江楼景区位于南京城西北狮子山巅,濒临长江。明洪武七年(1374年),明太祖朱元璋欲修未成,现建筑为2001年9月竣工景观;因明初文学家宋濂所撰《阅江楼记》而闻名,是江南四大名楼和中国十大历史文化名楼之一,有“江南第一楼”之称。阅江楼隐喻阅江揽胜之意,主楼通高52米,外观4层暗有3层,共7层,碧瓦朱楹、彤扉彩盈,具有鲜明的古典皇家气派,为典型的明代皇家建筑风格,总建筑面积约5000平方米。",
75
+  "秦淮河是南京古老文明的摇篮。十里秦淮沿河两岸自东吴以来便一直是繁华的商业区的居民地,六朝时成为名门望族聚居之地,商贾云集,文人荟萃,儒学鼎盛。隋唐以后,渐趋衰落,却引来无数文人骚客来此凭吊,到了宋代逐渐复苏为江南文教中心。明清两代,是十里秦淮的鼎盛时期。清未民初,内秦淮河日渐式微,繁华不再。直至1949年后,南京对秦淮河进行了大规模的疏浚治理,重点开发了秦淮风光带。2010年4月,夫子庙秦淮风光带被评为国家5A级旅游景区,2021年10月,夫子庙秦淮风光带入选首批国家级夜间文化和旅游消费集聚区。",
76
+  "乌衣巷位于南京市秦淮区秦淮河上文德桥旁的南岸,地处夫子庙秦淮风光带核心地带,是中国历史最悠久最著名的古巷,当时中国世家大族居住之地,三国时是吴国戍守石头城部队营房所在地。乌衣巷是晋代王谢两家豪门大族的宅第,两族子弟都喜欢穿乌衣以显身份尊贵,因此得名。乌衣巷门庭若市,冠盖云集,走出了王羲之、王献之,及山水诗派鼻祖谢灵运等文化巨匠。1997年,秦淮区人民政府恢复了乌衣巷,并重建了具有民族风格的王谢古居纪念馆。历经千年的沧桑,如今的乌衣巷已不复昔日的繁华,没有豪门士族的觥筹交错,取而代之的是游人探访王谢华堂踪迹。",
77
+  "燕子矶位于江苏省南京市栖霞区江边的直渎山上,三面悬绝,突兀江上,如燕子般欲展翅飞掠江面,故得名燕子矶。直渎山并不高,只有四十多米,却地势险要,燕子矶雄踞山上,总扼大江,在古代是渡江的绝佳渡口和扼守古都南京的军事重地。燕子矶因其独特的地理位置和重要性,被称为万里长江第一矶,位列长江三矶之首。",
78
+  "栖霞山,位于南京市栖霞区,古称摄山,南朝时山中建有“栖霞精舍”,因此得名。栖霞山被誉为“金陵第一明秀山”,是国家AAAA级旅游景区、中国四大赏枫胜地之一。历史上曾有五王十四帝登临栖霞山,其中乾隆六下江南,五次驻跸栖霞山。栖霞山素有“六朝胜迹”之称,在明代被列为“金陵四十八景”之一,有“一座栖霞山,半部金陵史”的美誉。栖霞山历史古迹遗址80多处,荟萃了宗教文化、帝王文化、绿色文化、民俗文化、地质文化、石刻文化、茶文化。千年古刹、佛学“三论宗”祖庭、佛教“四大丛林”之一的古栖霞寺就座落在栖霞山西麓。",
79
+  "朝天宫位于南京市秦淮区水西门内,是江南地区现存建筑等级最高、规模最大、保存最为完整的明清官式古建筑群落 ,素有“金陵第一胜迹”之美誉。朝天宫东为府学,中为文庙,西为卞壸祠。朝天宫之名,由明太祖朱元璋下诏御赐,取“朝拜上天”、“朝见天子”之意,是明代皇室贵族焚香祈福的道场和节庆前文武百官演习朝拜天子礼仪的场所。朝天宫与神乐观同为明朝最高等级的皇家道观。朝天宫是典型的明清殿宇式建筑,其建筑格局、样式、营造技术等是研究中国古代建筑,特别是研究明清建筑重要而难得的实物资料,具有极高的历史、艺术和科学价值。",
80
+  "梁洲是玄武湖五洲之一,面积8.81公顷,曾名老洲、旧洲、祖洲、莲花洲和美洲,是玄武湖开辟最早的一个洲,为昭明太子编《文选》的读书处,有“梁园”之称,故称梁洲。此洲擅全湖之胜,开明代后湖黄册库之滥觞。洲上人文荟萃,分布着湖神庙遗址、明代黄册库历史文化展馆、览胜楼、闻鸡亭、友谊厅、金陵盆景园等景点。每年一度的玄武湖菊展在此举行,有“梁洲秋菊”之美称。",
81
+  "后湖印月位于新模范马路隧道门附近,建于2010年,面积为146平方米。该建筑采用唐代建筑风格,是为纪念唐代李白而建,其名称出自李白《金陵三首·其二》“空馀后湖月,波上对瀛洲”一句。李白一生对南京有不解之缘,并多次游历玄武湖,或对“后湖月”,或赏“北湖梅”,留下与玄武湖有关的诗作4首。他曾凭吊郭璞仙墩,在《登金陵凤凰台》中写下了“吴宫花草埋幽径,晋代衣冠成古丘”这一千古名句;曾与好友杨利物泛舟湖上,当舟至覆舟山下,感叹“古之帝宫苑,今仍人樵苏”。",
82
+  "台城位于南京市玄武区北极阁北麓、玄武湖以南,是从解放门向西延伸出的一段明城墙,这段城墙下设有南京明城垣史博物馆。这段城墙以条石为城基,城基之上用明初烧制的城砖包砌,长253.15米、高20.16米,西端宽9.8米,东端宽10.3米。明太祖朱元璋筑应天府城时,原计划将这段城墙向西修至鼓楼岗并与石头城相接,明朝洪武十九年“新筑后湖城”,这一段城墙便遭废弃。明代后多将这段城墙附会为东晋至南陈时期的台城,并讹传。",
83
+  "钟山风景名胜区位于江苏省南京市玄武区紫金山,简称钟山风景区,是中国著名的风景游览胜地、首批国家级风景名胜区、首批国家5A级旅游景区、国家森林公园、国家文明风景名胜区、中国旅游胜地四十佳,自古被誉为江南四大名山,有钟山龙蟠的美誉。钟山因山顶常有紫云萦绕,又得名紫金山。紫金山中世界文化遗产1处,全国重点文物保护单位15处,江苏省文物保护单位和市级文物保护单位共31处,“中山伟陵”是金陵新四十景之一。",
84
+  "清凉山古名石头山、石首山、石头城,有“六朝胜迹”之称,园内众多的名胜古迹和历史文化遗址,形成了深厚的历史文化底蕴。诸葛亮曾称金陵形势为“虎踞龙蟠”,虎踞就指今清凉山。战国时楚威王于此置金陵邑,山存有城,名石城山。三国时,东吴改筑石头城,亦名石头山。南唐时曾建避暑行宫于山上。北宋时更名清凉山,后沿用。清代时候的清凉山环境优雅,香烟缭绕,漫山古木参天,浓荫蔽日,清凉寺、扫叶楼等掩映在绿树之中。清“金陵四十八景”中,清凉山占有两个:“石城霁雪”、“清凉问佛”。",
85
+  "莫愁湖公园,位于南京市建邺区外秦淮河西侧,是一座具有1500年悠久历史的古典名园,也是南京市著名的历史文化名片,自古有“金陵第一名胜”、“金陵四十八景之首”等美誉。公园区现有规划用地面积约51.04公顷,其中陆地18.71公顷,湖面32.33公顷,绿化覆盖率达70%以上。海棠、荷花、龙舟及红木文化为景区四大传统特色,每年均会依托四大文化特色举办多彩的园事花事活动,取得了一定知名度和影响力,深受广大市民游客好评。",
86
+  "赏心亭位于南京市秦淮区水西门广场西侧外,是一处历史名胜,宋代的金陵胜迹,历代文人均有登临怀古。赏心亭始建于宋代,曾是南京水西门内一处名胜,曾数毁数建。陆游和辛弃疾等古代文学大家都曾登临览胜,赋诗填词。在历史考证和现场调查的基础上,经过专家论证,并参照《营造法式》等宋代建筑书籍和现存宋代建筑的建造手法,在水西门西广场复建赏心亭,建筑风格延续秦淮风光带的明清建筑风格,采用宋代官式风格,八角歇山顶,灰筒瓦屋面。",
87
+  "长干里位于南京市秦淮区内秦淮河以南至雨花台以北,是中国古代著名的地名,是江南佛教圣地,素有“佛陀里”之美誉。长干里地势高亢,雨花台陈于前,秦淮河卫其后,大江护其西,又是秦淮河的入江通道,战略地位十分重要。南京城市的雏形——越城就位于此。范蠡之所以选择在此筑越城,就是看到这块地方物产丰富,交通便利,商业繁荣,人中密集,同时,这里有山水卫护,攻守皆宜。秦、汉、六朝时期,长干里是南京最繁华的地方,是著名的商业区和货物集散地。",
88
+  "大报恩寺遗址公园位于南京市秦淮区中华门外(长干里附近),北邻外秦淮河,南接雨花台,东至1865园区,西至雨花路,是“规格最高、规模最大、保存最完整”的中国古代寺庙遗址。遗址公园中保护性展示了大报恩寺遗址中的千年地宫和珍贵画廊,以及从地宫中出土的石函、铁函、七宝阿育王塔、金棺银椁等世界级国宝,是夫子庙秦淮风光带重要组成部分。",
89
+  "凤凰台位于南京市秦淮区长干里西北侧凤凰山上。杜牧《清明》诗中的杏花村就在附近,“竹林七贤”之一阮籍的衣冠冢也坐落于此。建成的古凤凰台景区占地2.2万平方米,主体建筑凤凰楼高25米,建筑面积1500平方米,远望则巍峨壮观,近观则雕梁彩绘。登高远眺,东接河西新区,西枕长江浪波,南抱三山葱茏,北临万家灯火,大江风貌尽收眼底,是一处叹为观止的胜地。",
90
+  "桃叶渡是南京古名胜之一,位列于金陵四十八景内。在原渡口处立有“桃叶渡碑”,并建有“桃叶渡亭”,从六朝到明清,桃叶渡处均为繁华地段,河舫竞立,灯船萧鼓。传说东晋书法家王献之有个爱妾叫“桃叶”,她往来于秦淮两岸时,王献之放心不下,常常都亲自在渡口迎送,并为之作《桃叶歌》:“桃叶复桃叶,渡江不用楫;但渡无所苦,我自迎接汝。”从此渡口名声大噪久而久之南浦渡也就被称呼为桃叶渡了。",
91
+  "雨花台最早记载于公元前1147年,泰伯在这一带传礼授农,南梁天监六年,城南门外高座寺的云光法师常在此设坛说法,感动上苍竟落花如雨,唐朝时改名为雨花台,并沿用至今。雨花台是新民主主义革命时期中国共产党人和爱国志士最集中的殉难地,新中国成立后,党和政府决定在此兴建雨花台烈士陵园,这里是中国新民主主义革命的纪念圣地。雨花台现为首批全国廉政教育基地、全国百家红色旅游经典景区和江苏省首批党性教育现场教学基地。",
92
+  "牛首山,是中国佛教名山,文化底蕴深厚,是佛教牛头禅宗的开教处和发祥地。山周围有感应泉、虎跑泉、白龟池、兜率岩、文殊洞、辟支洞、含虚阁、地涌泉、饮马池等自然景观,及宏觉寺、弘觉寺塔、郑和墓和抗金故垒等人文景观。牛首山属于宁镇丘陵西段南支,山高248米,因东西双峰对峙形似牛角而得名,风景宜人,有“春牛首”之称。清乾隆年间“牛首烟岚”列入金陵四十八景中。",
93
+  "石臼湖,位于江苏省南京市溧水区、高淳区和安徽省马鞍山市当涂县、博望区三区一县交界,是古丹阳湖的一部分,最大面积200多平方公里,湖泊具有灌溉、蓄洪、航运和养殖等多种功能。湖区物产资源丰富,其中以银鱼、螃蟹、野鸭等“三珍”最为出名。石臼湖被人们赞誉为“日出一斗金,夜出一斗银”。但由于无节制捕捞,最晚在21世纪初,银鱼等珍贵品种已经消失。“石臼渔歌”是新金陵四十景之一。",
94
+  "东山亦名土山,高62.1米,东晋丞相谢安受命抗御前秦符坚百万南侵之师,谢安一面派名将率8万精兵迎战,一面与家人、朋友至东山别墅“围棋睹墅”安定民心。淝水一战击溃符坚大军,创以少胜多之范例。东山留有“东山别墅”遗址。东山历史上多林木,且“山多蔷薇,春来作花,灿如云锦,故游迹胜矣”。",
95
+  "瞻园位于江苏省南京市秦淮区夫子庙秦淮风光带核心区,是南京现存历史最久的明代古典园林、“江南四大名园”之一。其历史可追溯至明太祖朱元璋称帝前的吴王府,后赐予中山王徐达的府邸花园,素以假山著称,以欧阳修诗“瞻望玉堂,如在天上”而命名,明代被称为“南都第一园”。现为全国重点文物保护单位、国家AAAAA级旅游景区。",
96
+  "文德桥位于江苏省南京市秦淮区夫子庙泮池西侧,地处夫子庙秦淮风光带,始建于明朝万历年间,后历代均有修葺,相传为李白醉酒捞月之地,后世为以示纪念,在桥旁辟建得月台。“文德桥”的“文德”二字取自儒家思想“文章道德天下第一”。由于这座桥正处在地球的子午线上,所以每逢农历十一月十五日子时,皓月当空,水中月亮正好被这座桥分为东西两边各一半,这一奇观被称为“文德分月”,又称为“文德桥半边月”。",
97
+  "随园位于南京五台山余脉小仓山一带,原为曹雪芹祖上林园,是著名的私家江南园林,清代江南的三大名园之一,现地面主体建筑均已不存,仅存遗址。清乾隆十三年,袁枚购得此园,名之为“随园”,死后即葬于随园。随园在太平天国时期被夷为平地,片橼无存。后太平军开荒种粮,拆毁随园,将园中珍宝运走,天下名园成为了农庄。1923年7月,金陵女子大学校址永久移至随园,随园原为江苏省文物保护单位。",
98
+  "南京世界文学客厅位于南京紫金山入城余脉、古鸡笼山下东南角,由一座3000平方米的院落改造而成。1500多年前,这里是中国历史上第一座文学馆所在地,而今是南京文学空间网络建设的中心和枢纽,承担了南京文学空间城市空间建设引领性的作用,打造“文学之都”的城市客厅、交流展示中心、文学创新活动的试验场,展示南京的文学文脉和作为天下文枢的独特地位,链接全市文学空间与地标,建立数据共享系统,促进文学互动展示体验与文学创作创新。",
99
+]
43 100
 
44 101
 const images = [
45 102
   "./images/1.jpg",
@@ -170,9 +227,7 @@ export const resources = [
170 227
     showGesture: true,
171 228
     infoIcon: {
172 229
       image: infoImage[0],
173
-      content:
174
-        "南京长江大桥位于南京市鼓楼区下关和浦口区桥北之间,是长江上第一座由中国自行设计和建造的双层式铁路、公路两用桥梁,具有极大的经济意义、政治意义和战略意义,有“争气桥”之称。大桥由正桥、南北桥头堡和南北引桥组成,正桥分上下两层,上层为公路桥,正桥长1577米,4车道的宽度,车行道宽15米,可容4辆大型汽车并行,两侧人行道各宽2.25米。下层为铁路桥,全长6772米,宽14米,铺设双轨,两列火车可同时对开。正桥长1576米,其余为引桥,公路引桥长3012米,宽19.5米。",
175
-      position: "left",
230
+      content: infoTexts[0],
176 231
     },
177 232
     audio: audios[0],
178 233
   },
@@ -182,14 +237,23 @@ export const resources = [
182 237
       pos: [100, 406],
183 238
     },
184 239
     audio: audios[1],
240
+    infoIcon: {
241
+      image: infoImage[1],
242
+      content: infoTexts[1],
243
+      pos: 'top',
244
+    },
185 245
   },
186 246
   {
187 247
     image: images[4],
188 248
     playBtn: {
189 249
       pos: [650, 172],
190 250
     },
191
-
192 251
     audio: audios[2],
252
+    infoIcon: {
253
+      image: infoImage[2],
254
+      content: infoTexts[2],
255
+      pos: 'bottom',
256
+    },
193 257
   },
194 258
   {
195 259
     image: images[5],
@@ -197,6 +261,11 @@ export const resources = [
197 261
       pos: [652, 773],
198 262
     },
199 263
     audio: audios[3],
264
+    infoIcon: {
265
+      image: infoImage[3],
266
+      content: infoTexts[3],
267
+      pos: 'bottom',
268
+    },
200 269
   },
201 270
   // {
202 271
   //   image: img5,
@@ -207,6 +276,10 @@ export const resources = [
207 276
       pos: [624, 890],
208 277
     },
209 278
     audio: audios[4],
279
+    infoIcon: {
280
+      image: infoImage[4],
281
+      content: infoTexts[4],
282
+    },
210 283
   },
211 284
   {
212 285
     image: images[7],
@@ -214,6 +287,10 @@ export const resources = [
214 287
       pos: [612, 486],
215 288
     },
216 289
     audio: audios[5],
290
+    infoIcon: {
291
+      image: infoImage[5],
292
+      content: infoTexts[5],
293
+    },
217 294
   },
218 295
   {
219 296
     image: images[8],
@@ -221,6 +298,11 @@ export const resources = [
221 298
       pos: [93, 557],
222 299
     },
223 300
     audio: audios[6],
301
+    infoIcon: {
302
+      image: infoImage[6],
303
+      content: infoTexts[6],
304
+      pos: 'right',
305
+    },
224 306
   },
225 307
   {
226 308
     image: images[9],
@@ -228,6 +310,11 @@ export const resources = [
228 310
       pos: [163, 224],
229 311
     },
230 312
     audio: audios[7],
313
+    infoIcon: {
314
+      image: infoImage[7],
315
+      content: infoTexts[7],
316
+      pos: 'right',
317
+    },
231 318
   },
232 319
   // {
233 320
   //   image: img8,
@@ -238,6 +325,10 @@ export const resources = [
238 325
       pos: [152, 782],
239 326
     },
240 327
     audio: audios[8],
328
+    infoIcon: {
329
+      image: infoImage[8],
330
+      content: infoTexts[8],
331
+    },
241 332
   },
242 333
   {
243 334
     image: images[11],
@@ -245,6 +336,11 @@ export const resources = [
245 336
       pos: [662, 380],
246 337
     },
247 338
     audio: audios[9],
339
+    infoIcon: {
340
+      image: infoImage[9],
341
+      content: infoTexts[9],
342
+      pos: 'top',
343
+    },
248 344
   },
249 345
   {
250 346
     image: images[12],
@@ -252,6 +348,10 @@ export const resources = [
252 348
       pos: [646, 225],
253 349
     },
254 350
     audio: audios[10],
351
+    infoIcon: {
352
+      image: infoImage[10],
353
+      content: infoTexts[10],
354
+    },
255 355
   },
256 356
   // {
257 357
   //   image: img10,
@@ -262,6 +362,11 @@ export const resources = [
262 362
       pos: [574, 1074],
263 363
     },
264 364
     audio: audios[11],
365
+    infoIcon: {
366
+      image: infoImage[11],
367
+      content: infoTexts[11],
368
+      pos: 'bottom',
369
+    },
265 370
   },
266 371
   {
267 372
     image: images[14],
@@ -269,6 +374,11 @@ export const resources = [
269 374
       pos: [132, 550],
270 375
     },
271 376
     audio: audios[12],
377
+    infoIcon: {
378
+      image: infoImage[12],
379
+      content: infoTexts[12],
380
+      pos: 'bottom',
381
+    },
272 382
   },
273 383
   {
274 384
     image: images[15],
@@ -276,6 +386,10 @@ export const resources = [
276 386
       pos: [642, 310],
277 387
     },
278 388
     audio: audios[13],
389
+    infoIcon: {
390
+      image: infoImage[13],
391
+      content: infoTexts[13],
392
+    },
279 393
   },
280 394
   {
281 395
     image: images[16],
@@ -283,6 +397,11 @@ export const resources = [
283 397
       pos: [92, 80],
284 398
     },
285 399
     audio: audios[14],
400
+    infoIcon: {
401
+      image: infoImage[14],
402
+      content: infoTexts[14],
403
+      pos: 'bottom',
404
+    },
286 405
   },
287 406
   {
288 407
     image: images[17],
@@ -290,6 +409,11 @@ export const resources = [
290 409
       pos: [652, 31],
291 410
     },
292 411
     audio: audios[15],
412
+    infoIcon: {
413
+      image: infoImage[15],
414
+      content: infoTexts[15],
415
+      pos: 'bottom',
416
+    },
293 417
   },
294 418
   {
295 419
     image: images[18],
@@ -297,6 +421,11 @@ export const resources = [
297 421
       pos: [652, 353],
298 422
     },
299 423
     audio: audios[16],
424
+    infoIcon: {
425
+      image: infoImage[16],
426
+      content: infoTexts[16],
427
+      pos: 'bottom',
428
+    },
300 429
   },
301 430
   // {
302 431
   //   image: img15,
@@ -307,6 +436,11 @@ export const resources = [
307 436
       pos: [166, 600],
308 437
     },
309 438
     audio: audios[17],
439
+    infoIcon: {
440
+      image: infoImage[17],
441
+      content: infoTexts[17],
442
+      pos: 'right',
443
+    },
310 444
   },
311 445
   {
312 446
     image: images[20],
@@ -314,6 +448,11 @@ export const resources = [
314 448
       pos: [364, 606],
315 449
     },
316 450
     audio: audios[18],
451
+    infoIcon: {
452
+      image: infoImage[18],
453
+      content: infoTexts[18],
454
+      pos: 'top',
455
+    },
317 456
   },
318 457
   {
319 458
     image: images[21],
@@ -321,6 +460,11 @@ export const resources = [
321 460
       pos: [386, 472],
322 461
     },
323 462
     audio: audios[19],
463
+    infoIcon: {
464
+      image: infoImage[19],
465
+      content: infoTexts[19],
466
+      pos: 'bottom',
467
+    },
324 468
   },
325 469
   {
326 470
     image: images[22],
@@ -328,6 +472,11 @@ export const resources = [
328 472
       pos: [132, 367],
329 473
     },
330 474
     audio: audios[20],
475
+    infoIcon: {
476
+      image: infoImage[20],
477
+      content: infoTexts[20],
478
+      pos: 'bottom',
479
+    },
331 480
   },
332 481
   {
333 482
     image: images[23],
@@ -335,6 +484,10 @@ export const resources = [
335 484
       pos: [250, 699],
336 485
     },
337 486
     audio: audios[21],
487
+    infoIcon: {
488
+      image: infoImage[21],
489
+      content: infoTexts[21],
490
+    },
338 491
   },
339 492
   // {
340 493
   //   image: img19,
@@ -345,6 +498,11 @@ export const resources = [
345 498
       pos: [152, 1040],
346 499
     },
347 500
     audio: audios[22],
501
+    infoIcon: {
502
+      image: infoImage[22],
503
+      content: infoTexts[22],
504
+      pos: 'right',
505
+    },
348 506
   },
349 507
   {
350 508
     image: images[25],
@@ -352,6 +510,11 @@ export const resources = [
352 510
       pos: [172, 835],
353 511
     },
354 512
     audio: audios[23],
513
+    infoIcon: {
514
+      image: infoImage[23],
515
+      content: infoTexts[23],
516
+      pos: 'right',
517
+    },
355 518
   },
356 519
   {
357 520
     image: images[26],
@@ -359,6 +522,11 @@ export const resources = [
359 522
       pos: [98, 196],
360 523
     },
361 524
     audio: audios[24],
525
+    infoIcon: {
526
+      image: infoImage[24],
527
+      content: infoTexts[24],
528
+      pos: 'right',
529
+    },
362 530
   },
363 531
   {
364 532
     image: images[27],
@@ -366,5 +534,9 @@ export const resources = [
366 534
       pos: [160, 64],
367 535
     },
368 536
     audio: audios[25],
537
+    infoIcon: {
538
+      image: infoImage[25],
539
+      content: infoTexts[25],
540
+    },
369 541
   },
370 542
 ];