Googleマップに表示するデータはたくさんありますが、必要なのは、Googleマップの現在の表示スペースに含まれる要素のみを配置することです。これを行う方法?いくつかの便利なチュートリアルリンクを提供します。
どんな助けでも大歓迎です。
Googleマップに表示するデータはたくさんありますが、必要なのは、Googleマップの現在の表示スペースに含まれる要素のみを配置することです。これを行う方法?いくつかの便利なチュートリアルリンクを提供します。
どんな助けでも大歓迎です。
このリンクを確認してください:https ://github.com/ketankpatel/android/tree/master/PinDropAnimation
可視領域にピンを落とします。
スニペットはここにあります:
private void putEventOverlay() {
if (mapData.getZoomLevel() < 3) {
mapData.getController().setZoom(3);
}
final MyLocationOverlay myLocationOverlay = new MyLocationOverlay(HomeActivity.this, mapData);
mapData.getOverlays().add(myLocationOverlay);
myLocationOverlay.enableMyLocation();
GeoPoint center = mapData.getMapCenter();
Integer latspan = mapData.getLatitudeSpan();
Integer lonspan = mapData.getLongitudeSpan();
Integer maxLat = center.getLatitudeE6() + (latspan / 2);
Integer maxLon = center.getLongitudeE6() + (lonspan / 2);
Integer minLat = center.getLatitudeE6() - (latspan / 2);
Integer minLon = center.getLongitudeE6() - (lonspan / 2);
double maxLatitude, minLatitude, maxLongitude, minLongitude;
maxLatitude = maxLat / 1E6;
minLatitude = minLat / 1E6;
maxLongitude = maxLon / 1E6;
minLongitude = minLon / 1E6;
Drawable marker = getResources().getDrawable(R.drawable.marker);
EventDetailModel tempDetailModel = null;
ArrayList<EventDetailModel> tempDetailList = dbHelper.getMapSortedEventData(minLatitude, maxLatitude, minLongitude,maxLongitude);
if (tempDetailList.size() != 0) {
mapData.getOverlays().clear();
}
for (int i = 0; i < tempDetailList.size(); i++) {
tempDetailModel = (EventDetailModel) tempDetailList.get(i);
MapItemizedOverlay itemizedOverlay = new MapItemizedOverlay(marker);
itemizedOverlay.addOverlay(HomeActivity.this, tempDetailModel);
mapData.getOverlays().add(itemizedOverlay);
}
mapData.invalidate();
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_UP) {
putEventOverlay();
}
return super.dispatchTouchEvent(ev);
}
「たくさんのデータ」とは、プロットするマーカーを意味すると思います。現在のマップ境界を取得します。データをループしてマーカーを追加しているときに、bounds.contains()を使用して、マーカーの位置が表示されるかどうかを確認します。もしそうなら、それを地図に追加します。