1
我要修復的標記在地圖的中心而不管位置座標。如果用戶在地圖上移動相機,我希望它在中間不會出現任何閃爍的標記,並且該標記上的新位置會顯示,如果可以,那麼我該怎麼做?請幫忙。由於固定標記SDK
我使用iOS版谷歌地圖SDK(Objective-C的)
我要修復的標記在地圖的中心而不管位置座標。如果用戶在地圖上移動相機,我希望它在中間不會出現任何閃爍的標記,並且該標記上的新位置會顯示,如果可以,那麼我該怎麼做?請幫忙。由於固定標記SDK
我使用iOS版谷歌地圖SDK(Objective-C的)
GMSCameraPosition *lastCameraPosition;
- (void)mapView:(GMSMapView *)pMapView didChangeCameraPosition:(GMSCameraPosition *)position {
/* move draggable pin */
if (movingMarker) {
// stick it on map and start dragging from there..
if (lastCameraPosition == nil) lastCameraPosition = position;
// Algebra :) substract coordinates with the difference of camera changes
double lat = position.target.latitude - lastCameraPosition.target.latitude;
double lng = position.target.longitude - lastCameraPosition.target.longitude;
lastCameraPosition = position;
CLLocationCoordinate2D newCoords = CLLocationCoordinate2DMake(movingMarker.googleMarker.position.latitude+lat,
movingMarker.googleMarker.position.longitude+lng);
[movingMarker.googleMarker setPosition:newCoords];
return;
}
}
- (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position {
lastCameraPosition = nil; // reset pin moving, no ice skating pins ;)
}
現在上面的代碼,使標記停留,因爲它是,但它飛行的同時拖動屏幕。
,如果你想它爲中心首先你必須設置標記座標map.center - >座標轉換,然後你有一些動畫做:
CGPoint point = map.center; GMSCameraUpdate *camera =[GMSCameraUpdate setTarget:[map.projection coordinateForPoint:point]];
[map animateWithCameraUpdate:camera];
然後等待地圖:mapDidIdle
什麼是您的代碼中的movingMarker? –
中心的「固定標記」 – Jaro