当前层。如何通知了我目前使用osmdroid显示当前定位位置变化
主要基于以下example我试图通过不构成每一我的位置有所改变时ItemizedOverlay<OverlayItem>
和ArrayList<OverlayItem>
优化系统一点点,但在构造函数中构建他们只有一次,后来就干脆点添加到我的ArrayList变量。
下面是它现在的样子:
private void InitializeMarkersOverlay() {
mOverlayItemArrayList = new ArrayList<OverlayItem>();
ItemizedOverlay<OverlayItem> locationOverlay =
new ItemizedIconOverlay<OverlayItem>(this, mOverlayItemArrayList, null);
mMapView.getOverlays().add(locationOverlay);
}
,并在新的位置到达:
private void AddPointToOverlay(GeoPoint gPt, boolean bShouldClearList) {
OverlayItem overlayItem = new OverlayItem("", "", gPt);
Drawable markerDrawable = ContextCompat.getDrawable(this, R.drawable.pin);
overlayItem.setMarker(markerDrawable);
// first time initializer
if(bShouldClearList) {
mOverlayItemArrayList.clear();
}
mOverlayItemArrayList.add(overlayItem);
}
由于我mMapView
已经有了一个指向mOverlayItemArrayList
我希望我的MapView的层会自动通知有关更改。但实际上没有发生。只有通过重新创建对象,我才能看到针。
您对引用的假设是正确的。真正的原因是你在ItemizedIconOverlay实例上使用了addItem方法。查看我的回复以了解更多详情。 –