1
나는 비슷한 질문을 여기에서 찾았으나 아무도 나를 도왔다. 사용자가 찍은 경로와 "경찰"형태의 아이콘을 보여주는 응용 프로그램이지도에서 실행됩니다. 내가 원하는 것은이 아이콘이 나 뒤에있는지도를 움직이는 것입니다. 그래서 나는 사용자의 현재 위치, 아이콘의 위치 및지도를 고려하여 새로운 점을 계산하는 방법 (스토킹)을 만들었습니다. 이 메서드는 작동하지만 문제는 응용 프로그램 아이콘을 실행하면 그의 위치가 업데이트되지 않기 때문에 한 번만 이동한다는 것입니다.Google지도에 아이콘 이동하기
public void onMyLocationChange(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
lat = String.valueOf(latitude);
longi = String.valueOf(longitude);
posCurrent = new LatLng(latitude, longitude);
posAtuais.add(posCurrent);
posInicial = posAtuais.get(0);
Marker marker = map.addMarker(new MarkerOptions().position(posInicial));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(posCurrent, 19));
PolylineOptions options = new PolylineOptions().width(5).color(mudaLinhaCor(heart_rate)).geodesic(true);
for (int z = 0; z < posAtuais.size(); z++) {
LatLng point = posAtuais.get(z);
options.add(point);
}
line = map.addPolyline(options);
LatLng posPolice = stalk(posCurrent, POLICE, map);
Marker init = map.addMarker(new MarkerOptions().position(posPolice)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.police)));
}
//A method that computes a new position
public LatLng stalk(LatLng player,LatLng police,GoogleMap mapView){
Projection projection = mapView.getProjection();
Point pointInicial = new Point(); //police
pointInicial = projection.toScreenLocation(police);
Point pointFinal = new Point(); //player
pointFinal = projection.toScreenLocation(player);
double y=0.2;
int x=0;
if((pointInicial.x==pointFinal.x)){
y=pointInicial.y+1;
}else{
double m=(pointFinal.y-pointInicial.y)/(pointFinal.x-pointInicial.x);
double b=pointInicial.y-(m*pointInicial.x);
int i=1;
while(y != (int)y){
if(pointInicial.x<pointFinal.x){
x=pointInicial.x+i;
//System.out.println("entrou no x<xfnal: "+x);
}
else if(pointInicial.x>pointFinal.x){
//System.out.println("entrou no x>xfnal");
x=pointInicial.x-i;
}
y=m*x+b;
//System.out.println("y: : "+y);
i++;
}
}
return projection.fromScreenLocation(new Point(x, (int) y));
}
누군가가 나를 도울 수 :
여기 내 코드의 일부입니다.
을 OnMarkerDragListener을 구현? 나는 이것이 무엇을하는지 잘 이해하지 못한다 ... –