2016-08-18 20 views
0

私はGoogleマップを使用しており、Map Fragment Classをサポートしています。プログラムで2点間の距離を計算したい。しかし、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 MapsのAPIユーティリティライブラリからクラスであり、あなたはSphericalUtilという名前Objectを宣言しています。

この行を削除します。

private Object SphericalUtil; 

をまた、あなたがinstructions次あなたbuild.gradleにGoogle MapsのAPIユーティリティライブラリを追加していることを確認してください。