본문 바로가기
Study/Android

Do it 안드로이드 앱 프로그래밍 미션 20

by Answer Choi 2015. 2. 11.
반응형

 

이건 gps를 이용하여 현재위치를 읽어오고, rec버튼을 누르면 내가 이동할때마다

 

내 위치가 db에 저장되고, 지도에는 폴리라인으로 표시가 되는 거다.

 

stop을 누르면 모든게 지워진다. 

 

go버튼은 지오코딩 부분

 

 

처음 실행하면 위와같은 화면이 나온다.

 

rec버튼을 누르고 움직이면 위와같이 폴리라인이 표시된다.

 

아마 3초간격으로 표시되게 해놨지 싶다.

 

그리고 stop버튼을 누르면 다 지워진다.

 

 

1. Using Database

 

 

DB를 사용하기위해 아래와 같은 코드를 추가해야 된다.

 

MainActivity.java

 

1
2
3
4
mapview.getSettings().setDatabasePath("/data/data/"+this.getPackageName()+"/databases/");
mapview.getSettings().setDomStorageEnabled(true);
mapview.getSettings().setDatabaseEnabled(true);
mapview.getSettings().setAppCacheEnabled(true);
cs

자바스크립트도 마찬가지로~(해쉬맵하고 비슷하다-같은것 같다)

 

 

index.html

 

1
2
3
4
5
6
function setdatabase(){
    getMylocation();
    var sumlatlnt=curLat+","+curLng;
    localStorage.setItem(keycnt,sumlatlnt);
    keycnt++;
}
cs

 

"localStorage.setItem(keycnt,value)"라고 기록하면 키와 정보가 저장된다.

 

나중에 기록된 걸 불러올 땐 "var temp=localStorage.getItem(key)"를 쓴다.

 

그리고 지울땐 "localStorage.removeItem(key)"

 

 

2. overlay using polyline

 

폴리라인은 아래의 코드가 필요하다.


1
2
3
4
5
6
7
8
var polyOptions = {
    strokeColor: '#000000',
    strokeOpacity: 1.0,
    strokeWeight: 3
  };
  poly = new google.maps.Polyline(polyOptions);
  poly.setMap(map);
  path = poly.getPath();
cs


구글 API에도 폴리라인 레퍼런스가 있으니 참고 ->> google API 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if(navigator.geolocation) {
     navigator.geolocation.getCurrentPosition(function(position) {  
         curLat=position.coords.latitude;
         curLng=position.coords.longitude;
         var newpos = new google.maps.LatLng(curLat,curLng);
         map.setCenter(newpos);
         path.push(newpos);
     }, function() {
      handleNoGeolocation(true);
    });
   
     
  } else {
   
    handleNoGeolocation(false);
  }
cs


폴리라인 그리는 건 "path.push(latLng)" 이고

 

지우는 건  "path.clear()" 이다.

 

 

 

 

 

 

반응형

인기글