도와주세요 사용자가 마커를 클릭하면 다른 활동이 시작됩니다. 다음 코드는 (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
}
}
}
});
정답을 표시하는 것을 잊지 마시기 바랍니다. 앱을 사용해보세요. –
죄송하지만 좌표를 추가하는 방법 ??? –
좌표는? [마커를 추가하는 방법] (https://developers.google.com/maps/documentation/android/marker#add_a_marker) –