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%)的屏幕位置上。