ここでは、ユーザーの現在地を取得して地図上に表示できます。Google プレイスの JSON データを取得して配列に解析できます。問題は、現在の場所のオーバーレイが表示されても、画面を縦向きから横向きに回転するまで追加のオーバーレイが表示されないことです。回転させて縦向きに戻しても、引き続き正常に動作します。
// call to retrieve and parse json data
Intent i = new Intent(this,HttpExample.class);
startActivity(i);
List<Overlay> mapOverlays;
mapOverlays = mapView.getOverlays();
mapView.getOverlays().clear();
// display current location overlay
GeoPoint point = new GeoPoint((int)(lat * 1E6), (int)(lon *1E6));
controller.animateTo(point);
Drawable drawable = this.getResources().getDrawable(R.drawable.mark_red);
itemizedOverlay = new MapItemizedOverlay(drawable,this);
OverlayItem overlayItem = new OverlayItem(point, "", "");
itemizedOverlay.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay);
// Go through loaded arrays to display additional overlays
drawable = this.getResources().getDrawable(R.drawable.mark_blue);
itemizedOverlay = new MapItemizedOverlay(drawable, this);
for(int r=0; r<10; r++)
{
GeoPoint point2 = new GeoPoint((int)(lat_coordinates[r]*1E6), (int)(lng_coordinates[r]*1E6));
overlayItem = new OverlayItem(point2, "", "");
itemizedOverlay.addOverlay(overlayItem);
mapView.invalidate();
}
itemizedOverlay.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay);
mapView.invalidate();
}
// When the activity starts up, request updates
@Override
protected void onResume() {
super.onResume();
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10,
1000*60*1, this);
}