• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何同步移动标记和相机并始终将标记放置在相机位置IOS的中心

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:49:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我希望 GMSMarker 移动到相机。这是我的代码

 -(void)addMap {

        GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:latitude
                                                                longitude:longitude
                                                                     zoom:15];
        GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
        CGRect newFrame = CGRectMake( 0, 0, [Util window_width],[Util window_height]);
        mapView = [GMSMapView mapWithFrame:newFrame camera:camera];
        mapView.delegate = self;
        mapView.myLocationEnabled = YES;

        GMSMarker *marker = [[GMSMarker alloc] init];
        marker.position = camera.target;
        marker.snippet = @"Hello World";
        marker.icon =[Util imageWithImage:[UIImage imageNamed"set_address.png"] scaledToSize:CGSizeMake(170, 65)];
        marker.appearAnimation = kGMSMarkerAnimationPop;
        marker.map = mapView;
        [self.MapContentView addSubview:mapView];


     }

我在 map 上有一个标记,如果用户不滚动 map ,它通常位于 map 的中心。

当用户滚动 map 时,我希望标记与相机一起移动到新位置,因此它始终位于 map 的中心。

我试试下面的代码

-(BOOL) mapViewGMSMapView *) mapView didTapMarkerGMSMarker *)marker
{
    [mapView animateToLocation:marker.position];


    return YES;
}


- (void)mapViewGMSMapView *)mapView didChangeCameraPositionGMSCameraPosition *)position
{

    marker.position = camera.target;
    marker.appearAnimation = kGMSMarkerAnimationPop;

    NSLog(@"camera.target.latitude %f,%f",camera.target.latitude,camera.target.longitude);

    latitude=camera.target.latitude;
    longitude=camera.target.longitude;

}



Best Answer-推荐答案


你可以试试这个:

- (void)mapViewGMSMapView *)mapView willMoveBOOL)gesture
{
    [self recenterMarkerInMapView:mapView];
}

- (void)mapViewGMSMapView *)mapView didChangeCameraPositionGMSCameraPosition *)position
{
    [self recenterMarkerInMapView:mapView];
}

- (void)recenterMarkerInMapViewGMSMapView *)mapView
{
    // Get the center of the mapView
    CGPoint center = [mapView convertPoint:mapView.center fromView:self.view];

    // Reset the marker position so it moves without animation
    [mapView clear];
    marker.appearAnimation = kGMSMarkerAnimationNone;
    marker.position = [mapView.projection coordinateForPoint:center];
    marker.map = mapView;
}

关于ios - 如何同步移动标记和相机并始终将标记放置在相机位置IOS的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31375672/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap