地图的坐标设置要在Update后才生效,所以ConvertCoordinateToScreen(Coordinate coordinate) 方法需要在LateUpdate()中去获取屏幕坐标,而不是在Start()中。
方案一:
1.不采用地图相机,有一个UI相机;
2.有地图操作的时候,根据ConvertCoordinateToScreen(Coordinate coordinate)接口获取Marker在地图相机的屏幕位置screenPosition;
3.算出screenPosition占屏幕宽高的比例,经这个比例换算成UI相机视口的比例位置上。
比如:在地图相机上,marker在整个屏幕(30%, 70%)的位置上,那么换算到UI相机,Marker应该放在UI相机视口(30%, 70%)的位置上。
方案二:
1.根据zoom_level的小数数值0-0.99获取放大的倍数;
2.当地图放大的时候,去缩小Marker相应大小的倍数; 相互抵消,从而Maker不跟着放大而缩小。
UI Camera和Map Camera是不同的,需要进行屏幕坐标转换,具体操作如下:
1.根据ConvertCoordinateToScreen(Coordinate coordinate)接口获取Marker在Map Camera的屏幕位置screenPosition;
2.算出screenPosition占屏幕宽高的比例,经这个比例换算成UI Camera视口的比例位置上;
比如:在地图相机上,Marker在Map Camera视口下(30%, 70%)的屏幕位置上,那么换算到UI Camera,Marker同样应该放在UI Camera视口(30%, 70%)的屏幕位置上。
1).商户标注问题请关注“腾讯位置服务”公众号反馈;
2).开发问题请在此页面(https://lbs.qq.com/dev/console/ticket/list )提交工单反馈。