구글맵에 PIN 위치를 6개 정도 찍어놨습니다.
private void testpinpoint() {
// 맵에 Pin 위치를 표시
pin = new GeoPoint[6];
pin[0] = new GeoPoint(36543852,128795997);
pin[1] = new GeoPoint(36543168,128794673);
pin[2] = new GeoPoint(36541276,128795316);
pin[3] = new GeoPoint(36542064,128796252);
pin[4] = new GeoPoint(36541384,128797432);
pin[5] = new GeoPoint(36540504,128795465);
for(int i=0; i<pin.length; i++){
mapOverlays = map.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.pin);
itemizedOverlay = new MapsItemizedOverlay(drawable);
OverlayItem overlayitem = new OverlayItem(pin[i], "", "");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
}
}
그리고 키보드 C를 눌러서 구글맵에서 C를 누른 위치와 위에서 pin으로 찍은 곳이 일치하면 자동으로 진동모드가 되게 만들었습니다.
@Override
//키 눌렀을때 정의
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_S)
{
map.setSatellite(!map.isSatellite());
return (true);
}
else if(keyCode == KeyEvent.KEYCODE_Z)
{
map.displayZoomControls(true);
return (true);
}
else if(keyCode == KeyEvent.KEYCODE_C)
{
int i = 0;
GeoPoint geo = map.getMapCenter();
latitude = geo.getLatitudeE6() /1E6;
longitude = geo.getLongitudeE6() /1E6;
matchingpoint(i);
StringBuffer buffer = new StringBuffer();
buffer.append("위도: ");
buffer.append(latitude);
buffer.append("\n");
buffer.append("경도: ");
buffer.append(longitude);
Toast.makeText(Maps.this, buffer.toString(), Toast.LENGTH_SHORT).show();
drawCircle();
return true;
}
return (super.onKeyDown(keyCode, event));
}
private void matchingpoint(int i) {
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
if (((latitude - 0.000150) <= (pin[i].getLatitudeE6()/ 1E6) && (pin[i].getLatitudeE6()/ 1E6) <= (latitude + 0.000150))
&& ((longitude - 0.000500) <= (pin[i].getLongitudeE6()/ 1E6) && (pin[i].getLongitudeE6()/ 1E6) <= (longitude + 0.000500))) {
Toast.makeText(Maps.this, "매너 모드로 전환됩니다.", Toast.LENGTH_SHORT).show();
am.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
} else {
if(am.getRingerMode()==am.RINGER_MODE_VIBRATE){
Toast.makeText(Maps.this, "매너 모드를 해제합니다.", Toast.LENGTH_SHORT).show();
}
am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
}
}
근데 이렇게 하면 젤위에 찍은 PIN[0] 위치만 매너모드가 되고 다른곳은 매너모드가 되지 않아요.알고리즘 문제인것 같은데 해결방법좀 주시면 감사하겠습니다^^