gpt4 book ai didi

ios - 谷歌地图 ios sdk 中心的固定标记

转载 作者:行者123 更新时间:2023-12-01 18:10:09 25 4
gpt4 key购买 nike

无论位置坐标如何,我都想将标记固定在 map 的中心。如果用户在 map 上移动相机,我希望它继续显示在中心,而标记中没有任何闪烁,并且该标记上显示新位置,如果可能,那么我该怎么做?请帮忙。谢谢

我正在使用 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];

然后等待 map :mapDidIdle

关于ios - 谷歌地图 ios sdk 中心的固定标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com