0

현재 Google지도가 포함 된 간단한 앱을 만들고 있습니다. 난 당신이지도에서 설정 마커를 제대로 이해하고 그리고 난이 디자인에 사용자가 클릭 좌표를 할 때 다음 활동으로 연결하고자하지만 작업과 오류가없는되지 않고, 나에게Android Google지도 좌표

double latitude = 1.34503109; 

    double longitude = 103.94008398; 

    LatLng latLng = new LatLng(latitude, longitude); 

    gMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
     @Override 
     public void onMapClick(LatLng latLng) { 
      Intent i = new Intent(Activity_Selecting_Bus.this, 
        Activity_Bus_Selected.class); 
      startActivity(i); 

     } 
    }); 

답변

2

도와주세요 사용자가 마커를 클릭하면 다른 활동이 시작됩니다. 다음 코드는 (SupportMapFragment에) 작동합니다 :

getMap().setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker) { 
    // do the thing! 
    return true; 
    } 
}); 

당신은 마커를 가지고이 대신 특정 위치를 클릭 사용을 수신하지 않으려면 :

getMap().setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
    @Override 
    public void onMapClick(LatLng latLng) { 
    // do the thing! 
    } 
}); 

당신은 아마 원하는이 경우 사용자가 특정 위치에서 "충분히 근접"을 클릭 할 때 활동을 시작합니다. 나는 미터에서 두 LatLng들 사이의 거리를 반환 방법

SphericalUtil.computeDistanceBetween(LatLng from, LatLng to) 

이 들어이 라이브러리 http://googlemaps.github.io/android-maps-utils/를 사용합니다.

편집 예 : 다음

private static final HashMap<LatLng, Class<? extends Activity>> sTargets = new HashMap(); 

static { 
    sTargets.put(new LatLng(34.0204989,-118.4117325), LosAngelesActivity.class); 
    sTargets.put(new LatLng(42.755942,-75.8092041), NewYorkActivity.class); 
    sTargets.put(new LatLng(42.352711,-83.099205), DetroitActivity.class); 
} 

private static final int RANGE_METERS = 200 * 1000; // 200 km range 

사용자가지도를 클릭, 당신은 거리를 계산 :

먼저 당신이 사용자가 클릭하는 위치를 정의 및 활동은 특정 클릭 출시를 않습니다 각 지점으로. 맞는 경우 활동을 시작합니다.

getMap().setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
    @Override 
    public void onMapClick(LatLng input) { 
     for(Map.Entry<LatLng,<? extends Activity>> entry : sTargets.entrySet()) { 
      LatLng ll = entry.getKey(); 
      boolean inRange = SphericalUtil.computeDistanceBetween(input, ll) < RANGE_METERS; 
      if (inRange) { 
       Class<? extends Activity> cls = entry.getValue(); 
       Intent i = new Intent(getActivity(), cls); 
       getActivity().startActivity(i); 
       break; // stop calculating after first result 
      } 
     } 
    } 
}); 
+0

정답을 표시하는 것을 잊지 마시기 바랍니다. 앱을 사용해보세요. –

+0

죄송하지만 좌표를 추가하는 방법 ??? –

+0

좌표는? [마커를 추가하는 방법] (https://developers.google.com/maps/documentation/android/marker#add_a_marker) –