본문 바로가기
반응형

전체 글557

hack user 보호되어 있는 글 입니다. 2023. 6. 5.
최단거리 구하기(2) - 네비게이션 경로 활용 테스트 환경 vue.js : 3.2.13 네이버의 길찾기 api(Directions 15)를 활용하여, 최단거리를 계산하였다. 이전 글(직선 거리)과 기능은 동일하다. 아래 동영상 설명. 1. 시작 주소 저장 버튼 클릭 -> 시작 주소를 시작점으로 하기 위해서, 별도로 조회 함. 2.목적지 주소 검색 버튼 클릭 -> 목적지 주소의 GPS상 좌표를 구해야 하기 때문에 시작 주소와 구분함 *이유: 비동기 호출이라.. 순서가 달라짐. 먼저 보냈다고 해서 먼저 오지 않음. 3. 경로 조회 버튼 클릭-> 최단 거리를 구하는 로직을 실행함. *목적지 주소 검색 api가 비동기인 관계로... 끝나는 시점을 계산 해야되는데... 시작 주소 저장 이벤트와 같은 로직을 실행 하는 관계로 별도로 만듬. 네이버의 길찾기 ap.. 2023. 3. 23.
최단거리 구하기(1) 테스트 환경 vue.js : 3.2.13 네이버 맵을 기반으로 하여서 최적 해를 구하는 코드입니다. 주소를 gps좌표 변환 api도 네이버를 이용하였습니다. 네이버랑 아무 관계없고.. 단지.. 그냥... 네이버 활용하였습니다. 최단거리(최적 해)를 구하는 것이... 결론만 말하면.. 모든 지점간 거리를 알고 있어야 하고, AI는 아무 것도 모르지만... AI도 내가 생각한 것과 동일하게 각 지점간 모든 거리를 알고 계산하는게 아닌가 싶네요. 혹시 아니라고 하시는 분들 댓글 남겨주시면, 공부 하겠습니다. 아무리 생각해도 이건... 다 알지 않고서는 어디가 최단거리인지 알수가 없네요. 지금은 직선 거리로 최단거리를 코드를 알려드리지만, 이후에 추가 되는 글에는 네이버 네비게이션 상의 최단 거리를 구하는 코드.. 2023. 3. 22.
Naver Directions 15(네이버 길찾기) 네이버 길찾기 api를 사용하려면, 네이버 클라우드에 등록을 하고 키를 발급 받아야 한다. 맵 관련 서비스는 아래에서 Directions 15 이다. 추가해야 서비스를 사용할 수 있다. 위 이미지(콘솔화면)의 [r]을 클릭하면, 링크가 연결되나,참고로 아래 사이트이다. https://guide.ncloud-docs.com/docs/ko/naveropenapiv3-maps-direction-15-driving Directions 15 - Maps guide.ncloud-docs.com 위 레퍼런스 참조하고 읽어보고 하면 되는데.... 바빠죽겠는데.. 언제 읽고 있냐라고 생각하면,,,, 사실 나도 그래서... 찾아봤는데... ㅜㅜ 없어서.. 결국 읽어보고 만들었다. 어려운 코드는 아니지만.. 남이 만든 ap.. 2023. 3. 16.
Json 데이터를 C# 코드로 변환 Json 데이터를 C#으로 모델을 만들어야 되는데... 귀찮아 하고 있던 중에... 예전에 같이 일했던 상사분이 알려 준 사이트가 생각나다. 그 때는 그다지 필요한 상황이 아니어서, 그냥 네네하고 넘어갔는데.. 기억이 나서 예전 문서 찾아보니 남아있었고, 사용해 보니, 왜 알려준지 알겠다. 이렇게 편하다니... ㅋㅋ 아래 사이트는 json 데이터를 복사 붙여넣기 하면, 해당 모델만 class로 뽑아준다. 예로 아래는 네이버 길찾기 json 데이터다. { "code": 0, "message": "길찾기를 성공하였습니다.", "currentDateTime": "2023-03-06T00:52:43", "route": { "trafast": [{ "summary": { "start": { "location": .. 2023. 3. 6.
javascript json object 복사 간만에 vue.js에서 트리구조(?)를 구현해 보려고 했는데.. 아무리 해도 예상대로 나오지 않아서.. 알아보니... json object가 단순히 복사하면... 안되는 것 같다. 물론 상황에 따라서는 맞을 수 있는데.. 내가 원하는 상황에서는 맞지 않았다. 내가 원하는 형태는 다음과 같은 형태이다. 0, 1, 2, 3, 4를 경우의 수 만큼 나열 하는 것이다. 예를 들어 기준을 0으로 잡고, 01234 01324 01423 01432 02134 02143 기준 점을 잡고 재귀함수로 구현을 했는데.. 아래와 같이 나왔다. 코드 문제 인가 여러가지로 고민을 했지만, 재귀함수에서 기본이 되는 상위 json 데이터를 복사를 해서 코딩을 하였는데... 이 부분이 문제였다. 다음과 같이 , recursionRoo.. 2023. 2. 9.
vue.js naver map - vworld 폴리곤 데이터 보정 vworld에서 받은 데이터 중에 일부 지역은 일정 간격 틀어져 있다. 틀어진 데이터를 보정하기 위한 기능을 구현. 네이버나 카카오는 폴리곤에 move 이벤트가 없어서, 마커의 move 이벤트를 사용하였다. 폴리곤의 센터 좌표를 알고 있어서, 해당 센터좌표에 마커를 놓고 마커를 클릭해서 이동할 시에 폴리곤도 이동하게 하였다. 정확히 말하면, 이동 전 좌표를 지우고, 다시 그리는 방식이다. 현재는 한개의 폴리곤만 하였지만, 조건만 맞다면, 일괄로 여러개의 폴리곤도 이동할 수 있다. vworld 데이터를 분석 해보면, 일정 길이 만큼 동일하게 틀어져 있다는 것을 알 수 있다. 보정은 db에서 하는 방법도 있을 것이고, 직접 하는 방법도 있는데, 지금은 지도에서 작업하는 것으로 하였다. 지도에서 폴리곤을 일괄.. 2022. 11. 3.
DevExtreme DataGrid multi header (vue.js) 개발환경 vue.js 3.2.13 DevExtreme DataGrid multi header(다중헤더) 그리드에서 자주 나오는 다중 헤더... 외국보다... 우리나라에서 유독 많이 쓰는 것 같음. 이유는 모르겠으나.... 고객이 원하면... 해줘야되는 우리.... 참고로 병합이 되어도... 단일 행은 가운데 정렬 안됨. 아마 css로 해야하지 않나 싶음. 전체 코드 import { DxDataGrid ,DxColumn ,DxScrolling } from 'devextreme-vue/data-grid'; export default { name: 'DataGrid03' , components: { DxDataGrid , DxColumn , DxScrolling } , data() { return { data.. 2022. 9. 17.
DevExtreme DataGrid check box 정렬 (vue.js) 개발환경 vue.js 3.2.13 DevExtreme DataGrid check box 그리드에서 row 선택 체크박스 전체 코드 import { DxDataGrid, DxColumn, DxSelection } from 'devextreme-vue/data-grid' import { DxButton } from "devextreme-vue/button" export default { name: 'DataGrid02' , data() { return { dataList: undefined , selectedRowKeys : '' } } , components: { DxDataGrid , DxColumn , DxSelection , DxButton } , mounted() { this.init() } , m.. 2022. 9. 17.
DevExtreme DataGrid 컬럼 정렬 (vue.js) 개발환경 vue.js 3.2.13 DevExtreme DataGrid 컬럼 정렬 기능 1. 컬럼 정렬(center, left, right) 2.header에 icon 추가 3.데이터 컬럼 값 합치기(employee) calculate-cell-value 헤더 가운데 하기 위해서 :allow-sorting="false" 필수 스타일도 별도로 추가 해야됨 .dx-header-row > td > .dx-datagrid-text-content { white-space: normal; vertical-align: top; text-align: center; } 컬럼에 아이콘도 넣을 수 있음. 코드 Mailing Address import { DxDataGrid, DxColumn, DxColumnChooser, D.. 2022. 9. 16.
DevExtreme DataGrid basic (vue.js) 개발환경 vue.js 3.2.13 DevExtreme DataGrid 기본형(단순 조회) 코드는 언제나 전체 코드. 복사 붙여넣기 하면, 실행됨 주석있는 것은 값 변경해볼 것. import { DxDataGrid, DxColumn, DxColumnChooser, //DxColumnFixing, //DxScrolling } from 'devextreme-vue/data-grid' export default { name: 'DataGrid00' , components: { DxDataGrid , DxColumn , DxColumnChooser //, DxColumnFixing //, DxScrolling } , data() { return { dataList: undefined , tableData : un.. 2022. 9. 15.
DevExtreme Button 스타일 정리(vue.js 버전) 개발환경 vue.js 3.2.13 DevExtreme button 스타일 정리 아래 15가지만 있음. 이전 프로젝트에서 퍼블리싱 코드를 dev 컨트롤이 렌더링 된 코드를 받아서... 어떤 옵션이 적용된지 태그 분석해서 하느라 개고생했는데... 왜 시간 허비하게 비효율적으로 개발했는지... 각 개발자들이 각자 이거 찾아서 넣는라... 고생했는데... 프로젝트가 끝난 후에 정리하다 보니... 이거밖에 없음. ㅡㅡ; 처음부터 이거 정리해서 개발자에게 줬으면... 고생하지 않았을텐데... 가로 세로의 옵션을 해당 위치에 넣어주면 다음과 같이 나옴. 가로 값은 type에, 세로 값은 styling-mode에 참고로 icon을 빼면 icon은 사라짐. vue 뿐만 아니라.. 다른 것에도 동일 할 듯 싶음. 언제나 .. 2022. 9. 15.
vue.js naver map & kakao map(샘플) 네이버 맵 & 카카오맵 vue.js에서 폴리곤, 아이콘 추가 개발환경 vue.js 3.2.13 *좌표는 동일 함. 맵으로 인해서 기본적인 차이는 있음. Kakao Map 카카오맵 마커 아이콘 그리기 폴리곤 그리기 {{coord}} var kMap //var drawManager export default { name: 'KakaoMap1' , components: { } , data() { return { markerLst : [ {x:126.9810147, y:37.5263942, icon:"dog.svg", polygon:[{x:126.9759077, y:37.5290488},{x:126.9769806, y:37.5238075},{x:126.9852633, y:37.5230246},{x:126.985.. 2022. 8. 25.
vue.js naver map & kakao map 네이버 맵과 카카오맵 vue.js에서 사용할 때 초기형(?) 딱 기본적인 기능만 넣음. 대한민국에서 많이 사용되는 맵으로 비교하기 위해서 작성함. 응용 기능은 추가로 작성할 예정임. 개발환경 vue.js 3.2.13 *유투부가 병신같은 짓해서... 좀... 이상하게 보이지만... 확대해서 보면 좀더 보기 편함. 카카오맵 카카오맵 기본기능 좌클릭: 현좌표 우클릭: 주소 *더블클릭은 실행안 됨. 클릭이 먼저 실행되서 이벤트를 막음. var kMap //var drawManager export default { name: 'KakaoMap' , components: { } , data() { return { } } , mounted() { if (window.kakao && window.kakao.maps) .. 2022. 8. 18.
Android Naver map test는 아래 기기에서 진행함. samsung note 8 (android 9) xiaomi redmi 9 (android 11) 개발 툴 정보 Android Studio Chipmunk | 2021.2.1 Patch 1 Build #AI-212.5712.43.2112.8609683, built on May 19, 2022 Runtime version: 11.0.12+7-b1504.28-7817840 amd64 VM: OpenJDK 64-Bit Server VM by Oracle Corporation Windows 10 10.0 Memory: 1280M Cores: 12 *androidx로 인해 개발 툴 정보도 포함 함. 4.1버전하고 조금 다른 부분이 있음. 기능 지도 띄우고, 이벤트 몇개만 추가한 .. 2022. 8. 5.
android floating Action bar & Bottom Navigation View(5) test는 아래 기기에서 진행함. samsung note 8 (android 9) xiaomi redmi 9 (android 11) 그 외 리소스 파일 badge, 메뉴 등등의 리소스들을 코드로 올리려고 하였으나 귀찮아서.... 통으로 압출해서 올림. *소스도 dll 파일이나 기타 등등의 파일을 제외하고 소스만 추출하는 방법이 있는 것 같은데... 찾아보기 귀찮고... 암튼.... 통으로 다 올림. 없는 파일 있으면 댓글 주시면, 올리겠습니다. 블로그를 매일 보는 것이 아니라서... 시간이 얼마나 걸릴지는 모르겠네요. 하지만, 당분간 기존 진행한 프로젝트에서 구현한 기능 중에 업무를 제외한 구현한 기능만 정리해서 업로드 할 예정입니다. 2022. 8. 2.
android floating Action bar & Bottom Navigation View(4) test는 아래 기기에서 진행함. samsung note 8 (android 9) xiaomi redmi 9 (android 11) 대량의 텍스트를 사용하여 TextView에 스크롤이 생기게해서 상단바, 하단바가 감춰지는 것을 테스트. a_text.java package com.norang.autoactionbar; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import android.annotation.SuppressLint; import andro.. 2022. 8. 1.
android floating Action bar & Bottom Navigation View(3) test는 아래 기기에서 진행함. samsung note 8 (android 9) xiaomi redmi 9 (android 11) 스크롤 되는 사이트(webview)로 상단바, 하단바가 감춰지는 것을 테스트. a_web.java package com.norang.autoactionbar; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.core.conten.. 2022. 8. 1.
android floating Action bar & Bottom Navigation View(2) test는 아래 기기에서 진행함. samsung note 8 (android 9) xiaomi redmi 9 (android 11) 기본 코드 AndroidManifest.xml build.gradle ----------------------------------------------------------------------------------------------------------- plugins { id 'com.android.application' } android { compileSdk 32 defaultConfig { applicationId "com.norang.autoactionbar" minSdk 28 targetSdk 32 versionCode 1 versionName "1.0" .. 2022. 7. 22.
android floating Action bar & Bottom Navigation View(1) floating action bar floating Bottom Navigation Vew badge 2022. 7. 16.
SharedPreferences 사용법 간단한 읽고, 쓰기 //load private SharedPreferences appData; protected void onCreate(Bundle savedInstanceState) { appData = getSharedPreferences("map", MODE_PRIVATE); } //읽기 public void btnReadClick(View view) { String value = appData.getString("walkthrough", "");//""인 기본 값 if (value.equals("")) { intent = new Intent(getApplicationContext(), OnBoardingActivity.class); startActivity(intent); } } //쓰기 pub.. 2021. 11. 29.
LinearLayout LinearLayout 정리중 android:orientation="vertical" //horizontal. vertical 참고 URL https://recipes4dev.tistory.com/89 2021. 11. 29.
[postgres] table, column info 스키마 정보 조회 select a.relname , b.description , b.description , d.attname , c.description --, e.data_type , e.udt_name , case when e.data_type = 'character varying' then text(e.character_maximum_length) when e.data_type = 'numeric' then text(e.numeric_precision) || ',' || text(e.numeric_scale) when e.data_type = 'bigint' then '8' --text(e.numeric_precision) when e.data_type = 'integer' then '4' --t.. 2021. 10. 5.
[postgres] 유용한 쿼리 select coalesce(null, 'null입니다.')--null 처리 --형 변화 select CAST ('100' AS INTEGER) , '2010-07-05'::date --날짜 select to_char(to_date('2021-08-07','YYYY-MM-DD'), 'MM/DD') --08/07 , to_char(current_date , 'MM/DD')--09/30 , to_char(current_date , 'YYYY-MM-DD')--2021-09-30 , to_char(current_date , 'YYYY-MM-DD HH24:MI:SS.MS')--2021-09-30 00:00:00.000 , TO_TIMESTAMP('2021-02-01','YYYY-MM-DD')--2021-02-01.. 2021. 9. 30.
색상표 1 000000 R - 000 G - 000 B - 000 333333 R - 051 G - 051 B - 051 666666 R - 102 G - 102 B - 102 999999 R - 153 G - 153 B - 153 CCCCCC R - 204 G - 204 B - 204 FFFFFF R - 255 G - 255 B - 255 2 000033 R - 000 G - 000 B - 051 333300 R - 051 G - 051 B - 000 666600 R - 102 G - 102 B - 000 999900 R - 153 G - 153 B - 000 CCCC00 R - 204 G - 204 B - 000 FFFF00 R - 255 G - 255 B - 000 3 000066 R - 000 G - 0.. 2021. 9. 30.
WebView로 cookie 데이터 저장 WebView로 cookie 데이터 저장 import android.webkit.CookieManager; CookieManager.getInstance().removeAllCookies(null); CookieManager.getInstance().setCookie("http://192.168.18.13:808", "name" + "=" + name); CookieManager.getInstance().setCookie("http://192.168.18.13:808", "action" + "=" + action); CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true); webView.loadUrl("http://192.168.18... 2021. 8. 9.
[error] java.net.ConnectException: Failed to connect to /192.168.18.13:44354 D/NetworkManagementSocketTagger: tagSocket(76) with statsTag=0xffffffff, statsUid=-1 W/System.err: java.net.ConnectException: Failed to connect to /192.168.18.13:44354 W/System.err: at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:1418) W/System.err: at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:1368) W/System.err: at com.android.o.. 2021. 8. 6.
[error] Uncaught TypeError: Cannot read property 'setItem' of null", source Uncaught TypeError: Cannot read property 'setItem' of null", source webview에서 발생시 아래 코드 넣어주면 됨. 로컬저장소 사용을 허가하는 설정. webView.getSettings().setDomStorageEnabled(true); 2021. 8. 6.
postDelayed public class MainActivity extends Activity { final Handler handler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); auth(); handler.postDelayed(new Runnable() { @Override public void run() { gotoLogin(); } }, 1000 * 2); } protected void auth() { } protected void gotoLogin() { Intent intent .. 2021. 8. 4.
Json 문자열 정리 사이트 json 정리 https://jsonlint.com/ https://jsonformatter.curiousconcept.com/# http://json.parser.online.fr/ 2021. 7. 26.
반응형