1、ConvertCoordinateToScreen(Coordinate coordinate)转换出来的坐标不正确?
答:地图的坐标设置要在Update后才生效,所以ConvertCoordinateToScreen(Coordinate coordinate) 方法需要在LateUpdate()中去获取屏幕坐标,而不是在Start()中。
2、希望添加到地图的Marker随着地图缩放而缩放?
方案一:
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不跟着放大而缩小。
3、ConvertCoordinateToScreen(Coordinate coordinate)转换出的屏幕坐标在和UI分辨率不同的手机上会出现偏移?
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%)的屏幕位置上。