2016-08-18 211 views
0

我正在使用Google Maps並支持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是從谷歌地圖API實用程序庫的類,您聲明命名SphericalUtil的Object

刪除此行:

private Object SphericalUtil; 

此外,請確保您要添加的谷歌地圖API實用程序庫您build.gradleinstructions