1
ユーザーがマップ上にマーカーを作成したら、そのマーカーのすべてのプロパティ(緯度、経度、タイトル、スニペットなど)を構造体/配列に保存するにはどうすればいいですか?それらをすべて別々の活動に並べることはできますか?各マーカーを関連付けるオブジェクトを作成する必要がありますか?ここでGoogleマップ:配列にマーカーを保存してリストアップする
はMapsActivity
のコードです:
package com.geekybrackets.virtualtourguide;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.util.Log;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.WeakHashMap;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
public GoogleMap mMap;
double lat = 0;
double lon = 0;
static final int GET_DETAILS = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
public void onMapClick(LatLng latLng) {
lat = latLng.latitude;
lon = latLng.longitude;
startActivityForResult(new Intent(MapsActivity.this,newMarker.class), GET_DETAILS);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == GET_DETAILS) {
if (resultCode == RESULT_OK) {
String marker_title=data.getStringExtra("title");
Marker m = mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lon))
.title(marker_title));
mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(lat, lon)));
}
}
}
}
うーん、あなたの詳細な応答のためのおかげで、しかし、私は一度送信され活動を開始したくない意図を通じて情報を送信した後に、その代わりに、私は別のボタンから活動をトリガします。インテントを使用すると可能ですか? –
リストにマーカーを保存して、インテントを作成し、必要に応じてアクティビティを開始してください。 – antonio
@antonio他のアクティビティでmarkersArrayをどのように取得しますか?私はここで本当に苦労しています –