Flutter๋ก ํ๋ ํ๊ต ํ๋ก์ ํธ - BING Image Search, Google Map, ๊ณต๊ณต๋ฐ์ดํฐ API, Firebase
https://github.com/jiyeoon/hikingmobileapp
jiyeoon/hikingmobileapp
Hiking Mobile App using Flutter! - 2019 Capstone Design Project - jiyeoon/hikingmobileapp
github.com
ํ๊ต ํ๋ก์ ํธ ๊ณผ๋ชฉ ์์ ์ ์๊ฐํ๊ณ ์๋๋ฐ.. ๊ฐ์ด ํ๊ณ ์๋ ํ์๋ค๊ณผ ํจ๊ป ํ๋ก์ ํธ๋ฅผ ํํ๊ธฐ๋์ ํ๊ณ ์๋ค.
๋๋ ๋ชจ๋ฐ์ผ ํ๋ก ํธ๋ฅผ ๋งก๊ฒ ๋์๋๋ฐ.. ์ฒ์ ํฌ๋ถ๋ ์ข์์ผ๋ ๊ธฐ๋ฅ์ ํ๋ํ๋ ์์ ๋ฉด์ ๋๋ง ๋จ์๋ค ใ ใ .. ใ
1. ์ด๋ฏธ์ง ๊ฒ์
์ด๋ฏธ์ง ์ ๋ณด๋ฅผ ๋ฐ์์ค๋ ๊ฒ์ด ํ์ํ๋๋ฐ, ์ด๊ฒ์ BING์ ์ด๋ฏธ์ง๊ฒ์ API๋ฅผ ์ฌ์ฉํ๋ค.
RESTful๋ก ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์์ด ํฐ ์ด๋ ค์์ ์์๋ค.
Client Key๋ฅผ ๋ฐ์์ Request๋ฅผ ํ ๋ ํ๋ผ๋ฏธํฐ๋ก ๋ด์ฉ์ ์ถ๊ฐํด์ฃผ๋ ๋ถ๋ถ์ด ํ์ํ๋ค
_getImageData() async{
String subscription_key = "YOUR_KEY";
String img_search_url = "https://api.cognitive.microsoft.com/bing/v7.0/images/search";
var headers = {"Ocp-Apim-Subscription-Key" : subscription_key}; //header์ ํค๋ฅผ ๋ฃ์ด์ค
String search_term = "SEARCH_KEY"; //๊ฒ์ํ๊ณ ์ถ์ ๋จ์ด ์
๋ ฅ
var params = {"q": search_term, "license": "all", "imageType": "photo"}; //ํ๋ผ๋ฏธํฐ ์์ฑ๊ฐ์ ๋ํด์ค
//Httpํต์ ์ Dio ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๋ค. ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ์ ์ต์
์ ๊ฐ์ด ๋ณด๋ด์ฃผ์ด์ผ์ง ์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ๊ฐ ๋ฐ์์ง๋ค!
var response = await Dio().get(img_search_url, queryParameters: params, options: Options(headers: headers));
print("get image data : ");
print(response.statusCode); //ํ์ธ
print(response.data);
//์ด๋ฏธ์ง ๊ฒ์์ ํ๋ฉด ๊ฐ์ด ์ฌ๋ฌ๊ฐ ๋ฐ์์ง๋๋ฐ, ์ฒซ๋ฒ์งธ ์ฌ์ง์ ์ฌ์ฉํ๋ ๋ถ๋ถ! 'contentUrl'์ ์ด๋ฏธ์ง ์ฃผ์๋ค.
var purifieddata = response.data['value'][1]['contentUrl'];
print(purifieddata);
setState(() {
imglink = purifieddata;
});
}
2. ์ฐ ์ ๋ณด
์ฐ ์ ๋ณด๋ ๊ณต๊ณต๋ฐ์ดํฐํฌํธ์ ์ ์๋ค. ๊ทธ๋ฅ API ๋ฐ๊ณ ~~ ๊ทธ๋ฌ๋ฉด ๋!
https://www.data.go.kr/dataset/3044591/openapi.do
๊ณต๊ณต๋ฐ์ดํฐํฌํธ
๊ตญ๊ฐ์์ ๋ณด์ ํ๊ณ ์๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผใ๊ณต๊ณต๋ฐ์ดํฐ์ ์ ๊ณต ๋ฐ ์ด์ฉ ํ์ฑํ์ ๊ดํ ๋ฒ๋ฅ (์ 11956ํธ)ใ์ ๋ฐ๋ผ ๊ฐ๋ฐฉํ์ฌ ๊ตญ๋ฏผ๋ค์ด ๋ณด๋ค ์ฝ๊ณ ์ฉ์ดํ๊ฒ ๊ณต์ •ํ์ฉํ ์ ์๋๋ก ๊ณต๊ณต๋ฐ์ดํฐ(Dataset)์ Open API๋ก ์ ๊ณตํ๋ ์ฌ์ดํธ์ ๋๋ค.
www.data.go.kr
3. ์ง๋.. geoJSON..
์ฌ๊ธฐ์ ๋งํ.....ใ
๊ตฌ๊ธ๋งต ์์ ๋ฑ์ฐ๋ก ์ ๋ณด๋ฅผ ๋ฟ๋ ค์ผ ํ๋๋ฐ (์๋ ๊ทผ๋ฐ ๊ตฌ๊ธ๋งต ๋๋๊ฐ๋ค ;;;;; ์์ง์์ง)
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌ๋ฆฌ geoJSON ํ์ผ์ ์ ๋ณด๋ฅผ ํ๋ฒ์ ์ดค์ .. ๋ฟ๋ฆฌ๋๊ฒ ์์ด์ ํ๋ํ๋ ํ์ฑ์ ํด์ผํ ..๊ฒ..๊ฐ๋ค..
(์์ฐ)
4. ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฅ ๋ฃ๊ธฐ ์๋..
๋ก๊ทธ์ธ ๊ธฐ๋ฅ๋ ๊ตฌํํ๊ณ .. ๊ทธ๋์ ์ฌ๋๋ค์ด ๊ธ๋ ์์ฑํ๊ฒ ํ๊ณ ์ถ์๋ค.
๊ทธ๋์ ํ์ด์ด๋ฒ ์ด์ค์ ๊ธฐ๋ฅ์ ์ฐ์! ์๊ฐ์ ํ๋ค.
๊ทผ๋ฐ ํ์ด์ด๋ฒ ์ด์ค ๋ญฃ๋๋ฌธ์ธ์ง ์๋จ ์์ ์ด๋ฐ.... ๋ฒ์ ์ด ๋ฌ๋ผ์ ๊ทธ๋ฐ๊ฑฐ๊ฐ๋ค
์ฝ๋๊ฐ ์ด์ ์์ ์คํ์กฐ์ฐจ ๋์ง ์์์
ํต๋นก์นจ..
....
์ด๋กํ์ฅฌ?
'๐ฑ ์๊ธ์๊ธ๋ป๊ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ดํจ๋๋ณ์ ์์นํ๋ค - ์์ดํจ๋ ์์ฐ์ฑ ์ดํ ์ถ์ฒ (0) | 2020.05.06 |
---|---|
๋ธ๋ก๊ทธ ์ด์ฌ๊ฐ๊น๋ฅผ ๊ณ ๋ฏผํ๊ณ ์์ด๋น (๋ด๊ธฐ์ค ์์ Github Jekyll ํ ๋ง ๋ชจ์) (0) | 2019.12.16 |
์คํฐ๋์ฉ ํ๋ธ๋ก๊ทธ ์ ์ฐฉ๊ธฐ (0) | 2019.11.10 |
Google Cloud Summit Seoul 2019 ํ๊ธฐ! (0) | 2019.11.10 |
๋ฏธ๋์ ๋ํด์ ์๊ฐํด๋ณด๊ธฐ (0) | 2019.11.01 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
์์ดํจ๋๋ณ์ ์์นํ๋ค - ์์ดํจ๋ ์์ฐ์ฑ ์ดํ ์ถ์ฒ
์์ดํจ๋๋ณ์ ์์นํ๋ค - ์์ดํจ๋ ์์ฐ์ฑ ์ดํ ์ถ์ฒ
2020.05.06 -
๋ธ๋ก๊ทธ ์ด์ฌ๊ฐ๊น๋ฅผ ๊ณ ๋ฏผํ๊ณ ์์ด๋น (๋ด๊ธฐ์ค ์์ Github Jekyll ํ ๋ง ๋ชจ์)
๋ธ๋ก๊ทธ ์ด์ฌ๊ฐ๊น๋ฅผ ๊ณ ๋ฏผํ๊ณ ์์ด๋น (๋ด๊ธฐ์ค ์์ Github Jekyll ํ ๋ง ๋ชจ์)
2019.12.16 -
์คํฐ๋์ฉ ํ๋ธ๋ก๊ทธ ์ ์ฐฉ๊ธฐ
์คํฐ๋์ฉ ํ๋ธ๋ก๊ทธ ์ ์ฐฉ๊ธฐ
2019.11.10 -
Google Cloud Summit Seoul 2019 ํ๊ธฐ!
Google Cloud Summit Seoul 2019 ํ๊ธฐ!
2019.11.10