이전 글에서 네이버 지도 모듈을 사용하다 속도 관련 이슈를 다뤘었다.
위 과정으로 해결하려 했으나, 마커 수가 더 많아지자 로딩 스피너가 10초 이상동안 표시되었다..
그래서 고심끝에 지도 모듈을 변경하기로 하였다.
찾아본 후보 라이브러리들은 다음과 같다.
1. NaverMapsAPI
2. MapBox
3. GoogleMpasAPI
4. Leaflet
위 4가지를 마커 등록하는 페이지를 기준으로 하나씩 테스트했다.
중점적으로 봤던 부분은
마커의 추가 및 삭제 속도
, polyline 화살표 옵션
, filtering 옵션
위 세가지이다
가장 먼저 네이버 지도의 테스트 결과이다.
filtering
기능이 없어서 추사 및 삭제에 시간 다수 소요polyline
화살표 추가 옵션 제공언급한 라이브러리들 중에서 속도는 가장 느렸음.
하지만 국내 지도 데이터로써의 정확성은 매우 상세하고 정확함.
국내에서만 사용하는 어플리케이션 용도로 개발한다면 적합.
filtering
기능(setFilter
)이 있어서 삭제 추가할 필요 없음.polyline
화살표 추가 옵션 별도 제공하지 않음다양한 기능과 커스터마이징이 가능해서 유연하게 사용가능하지만 초보자가 사용하기엔 다소 복잡할 수 있음.(러닝커브)
그 외에는 속도적으로나 기능적으로 우수함.
filtering
기능 없음 그러나 특정 조건에 부합한 마커를 숨기거나 표시할 수 있는 setVisible
함수 사용가능polyline
화살표 추가 옵션 제공2D
, 위성
, 3D
)전반적으로 우수한 속도 성능을 보였으며, 스트리트 뷰나 지도 유형 설정 기능같은 부가 기능으로 어플리케이션을 좀 더 다양하게 활용할 수 있음.
현재도 꾸준히 업데이트(마커, 2월 21일자로 새로운 버전으로 업데이트)중이며,
한달간 200달러에 해당하는 이용요금을 무료로 제공하고 있다.
위와 같은 결과가 나옴.
현재 제작하려는 어플리케이션의 성격에 맞게
구글 지도로 결정하였음.
나중에 또 지도 모듈을 변경할 때 유지보수에 용이하도록 어댑터 패턴을 적용하여 코드 작성할 예정.
구글 지도 라이브러리를 사용해서 마커에 특정 애니메이션을 적용하려고 하니 해당하는 기능을 지원하지 않았음.
그러나 현재까지도 꾸준히 업데이트중이니 나중에는 지원될 것 같음.
어떤 지도 라이브러리가 제일 좋다고는 말 못하지만, 상황에 맞는 1등 라이브러리는 판단하에 결정할 수 있을 것 같다.
참고: 구글 지도 API 마커 새로운 버전(https://developers.google.com/maps/documentation/javascript/reference/advanced-markers?hl=ko)