2016-08-18 7 views
0

저는 Google지도 작업 중이며 Map Fragment Class를 지원하고 있습니다. 이 프로그램이 두 점 사이의 거리를 계산하기를 원합니다. 그러나 ComputeDistanceBetween 메서드를 해결할 수 없다는 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까? (대부분의 코드는 Github에서 가져 왔습니다.)ComputeDistanceBetween 메서드를 해결할 수 없습니다

public class DistanceDemoActivity extends BaseDemoActivity implements GoogleMap.OnMarkerDragListener { 
    private TextView mTextView; 
    private Marker mMarkerA; 
    private Marker mMarkerB; 
    private Polyline mPolyline; 
    private Object SphericalUtil; 


    protected int getLayoutId() { 
     return R.layout.distance_demo; 
    } 


    protected void startDemo() { 
     mTextView = (TextView) findViewById(R.id.textView); 

     getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(-33.8256, 151.2395), 10)); 
     getMap().setOnMarkerDragListener(this); 

     mMarkerA = getMap().addMarker(new MarkerOptions().position(new LatLng(-33.9046, 151.155)).draggable(true)); 
     mMarkerB = getMap().addMarker(new MarkerOptions().position(new LatLng(-33.8291, 151.248)).draggable(true)); 
     mPolyline = getMap().addPolyline(new PolylineOptions().geodesic(true)); 

     Toast.makeText(this, "Drag the markers!", Toast.LENGTH_LONG).show(); 
     showDistance(); 
    } 

    private void showDistance() { 
     double distance = SphericalUtil.computeDistanceBetween(mMarkerA.getPosition(), mMarkerB.getPosition()); 
     mTextView.setText("The markers are " + formatNumber(distance) + " apart."); 
    } 

    private void updatePolyline() { 
     mPolyline.setPoints(Arrays.asList(mMarkerA.getPosition(), mMarkerB.getPosition())); 
    } 

    private String formatNumber(double distance) { 
     String unit = "m"; 
     if (distance < 1) { 
      distance *= 1000; 
      unit = "mm"; 
     } else if (distance > 1000) { 
      distance /= 1000; 
      unit = "km"; 
     } 

     return String.format("%4.3f%s", distance, unit); 
    } 

    @Override 
    public void onMarkerDragEnd(Marker marker) { 
     showDistance(); 
     updatePolyline(); 
    } 

    @Override 
    public void onMarkerDragStart(Marker marker) { 

    } 

    @Override 
    public void onMarkerDrag(Marker marker) { 
     showDistance(); 
     updatePolyline(); 
    } 
} 
+0

대부분의 코드는 어디에서 가져 왔는지 또는 적어도 일부는 작동하고 있는지 확인해야합니다 – YakovL

답변

1

SphericalUtil Google지도 API 유틸리티 라이브러리에서 클래스이고 당신은 SphericalUtil라는 Object를 선언한다.

제거이 라인 :

private Object SphericalUtil; 

또한, 당신은 instructions 다음 당신의 build.gradle에 Google지도 API 유틸리티 라이브러리를 추가하고 있는지 확인하십시오.

관련 문제