私は 3 人の緯度と経度を持っています。次のように、自分の場所と他の 3 人の間のルートを取得して表示する必要があります。
アプリに 3 つの連絡先を含む小さなデータベースがあり、コードは次のようになります。
package androiddatabase.app;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.Window;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
/**
* Created by Dennis and Rodrigo on 5/6/2014.
*/
public class RutasActivity extends FragmentActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_ruta);
GoogleMap mapa = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
mapa.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
mapa.setMyLocationEnabled(true);
mapa.getMyLocation();
CargarContactos(this, mapa);
//--------------------------------//
// GREETINGS //
// FROM BOLIVIA!!! //
// n_n //
//--------------------------------//
}
private void CargarContactos(Context context,GoogleMap mapa){
myApp.DBManager manager = new myApp.DBManager(context);
Cursor cursor = manager.CargarMapa();
if (cursor.moveToFirst()) {
do
{
if (cursor.getString(4).toString().contains("1")) {
mapa.addMarker(new MarkerOptions()
.position(
new LatLng(Double.parseDouble(cursor.getString(2)),
Double.parseDouble(cursor.getString(3)))
)
.title(cursor.getString(7) + " - " + cursor.getString(1))
.snippet("Fecha: " + cursor.getString(5) + " Monto: " + cursor.getString(6))
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.familia)));
}
else
{
mapa.addMarker(new MarkerOptions()
.position(
new LatLng(Double.parseDouble(cursor.getString(2)),
Double.parseDouble(cursor.getString(3)))
)
.title(cursor.getString(7) + " - " + cursor.getString(1))
.snippet("Fecha: " + cursor.getString(5) + " Monto: " + cursor.getString(6))
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.amigos)));
}
}
while(cursor.moveToNext());
}
cursor.close();
manager.CloseManager();
}
}
次のような位置のみを表示できます。
では、自分の場所と他のポイントの間のルートを運転モードで表示または表示するにはどうすればよいですか? 私は例やチュートリアルを見ますが、誰かの例では次のようなライブラリ間の違いが存在します:
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
ADT または Eclipse および
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
アンドロイドスタジオ用
または GeoPoint は LatLng と同等ですか?
または、何か間違っているか、何かを忘れています。ルートを表示するために、データベースから LatLng オブジェクトを配列に入れるにはどうすればよいですか? 助けはありますか?みんなありがとう