2016-07-18 5 views
0

LatLngオブジェクトをdoubleに使用するには、が必要です。私を助けてください。これを今明確にするために、コードの他の部分のために1ではなく2つの変数を使用することはできません。LatLngオブジェクトをダブルとして使用できますか?

ここでは、コードです:

protected LatLng end; 

Geocoder gc = new Geocoder(this); 
    List<Address> list = gc.getFromLocationName(location, 1); 
    Address add = list.get(0); 
    String addressline = add.getAddressLine(0); 
    Toast.makeText(this, addressline, Toast.LENGTH_LONG).show(); 

    end = new LatLng(add.getLatitude(), add.getLongitude()); 

    gotoLocation(end, DEFAULTZOOM); 

    MarkerOptions options = new MarkerOptions() 
      .position(new LatLng(end)); 
    marker = mMap.addMarker(options); 

    if (marker != null) { 
     marker.remove(); 
    } 
} 

gotoLocationコード:

private void gotoLocation(double lat, double lng, 
           float zoom) { 
     LatLng ll = new LatLng(lat, lng); 
     CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom); 
     mMap.moveCamera(update); 
     mMap.animateCamera(update); 
    } 

問題は、私はendダブルを作るならば、それは、この上のエラーを与えていることは、それは緯度経度オブジェクトを期待言っend = new LatLng(add.getLatitude(), add.getLongitude());をLINE-は。 LatLngオブジェクトにすると、gotoLocation(end, DEFAULTZOOM);というエラーが表示され、第1引数の型が間違っています(基本的にdoubleの代わりにLatLngオブジェクトが見つかりました)。

すべての方法をお読みいただきありがとうございます!

+1

を受け入れるようにgotoLocationを変更いけません。コードを投稿する – tyczj

+0

LatLngは倍数ではありませんが、緯度または経度の値は一緒ですが、それを二重にすることは不可能です – tyczj

+0

ペアの座標を単一の値として保存することはできません。 – Compass

答えて

1

は、なぜあなたはちょうど `gotoLocation`は何をするのかのLatLngオブジェクト

private void gotoLocation(LatLng ll,float zoom) { 
    CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom); 
    mMap.moveCamera(update); 
    mMap.animateCamera(update); 
} 
+0

'options.position'は2倍を期待しているのでエラーを受け取ります。これをどうやって解決するのですか? – petnamedsteve

+0

あなたはすでにlatlngオブジェクトを持っています(終わり)なぜ別のオブジェクトを作成しようとしているのですか?ドキュメントを見て、LatLngのコンストラクタを使用する方法やプログラミングの書籍を購入する方法を見てください。これは問題がある基本的なものだからです – tyczj

関連する問題