使用 nativescript-google-maps-sdk iOS 中的错误地图中心
Wrong map center in iOS using nativescript-google-maps-sdk
在 iOS 中,当我放置标记和 mapView 位置时,地图不会居中显示,但如果我将 phone 移动到横向并再次旋转到纵向,地图中心显示正常。
在 Android 中工作正常。
您可以在这个 GitHub 问题中获得更多信息:
https://github.com/dapriett/nativescript-google-maps-sdk/issues/322
我亲自面对过这个问题,发现它基本上是 iOS 上的布局问题。提供给 MapView 的 XML 元素的 height
和 width
属性值在 iOS 中有些不同。正如问题本身所述,我们问题的解决方案是 resizing
运行时的地图(因为旋转屏幕会使其通过调整大小的例程)。在地图渲染开始时应用这种荒谬的逻辑,解决了这个问题。
我是这样做的:
提供 XML 中 MapView 的 width
值:
<maps:mapView width="100%" mapReady="onMapReady" />
并在onMapReady
方法中设置地图的height
,延迟100毫秒。
/* if you want to set height in DIP */
setTimeout(() => this.mapView.height = 500, 100);
或者如果你想以百分比设置高度
/* [0.85 means 85% here] */
setTimeout(() => this.mapView.height = {
unit: '%',
value: 0.85
}, 100);
100 毫秒延迟使其通过 resize
效果。在 iOS 12.1
上测试
在 iOS 中,当我放置标记和 mapView 位置时,地图不会居中显示,但如果我将 phone 移动到横向并再次旋转到纵向,地图中心显示正常。 在 Android 中工作正常。
您可以在这个 GitHub 问题中获得更多信息: https://github.com/dapriett/nativescript-google-maps-sdk/issues/322
我亲自面对过这个问题,发现它基本上是 iOS 上的布局问题。提供给 MapView 的 XML 元素的 height
和 width
属性值在 iOS 中有些不同。正如问题本身所述,我们问题的解决方案是 resizing
运行时的地图(因为旋转屏幕会使其通过调整大小的例程)。在地图渲染开始时应用这种荒谬的逻辑,解决了这个问题。
我是这样做的:
提供 XML 中 MapView 的 width
值:
<maps:mapView width="100%" mapReady="onMapReady" />
并在onMapReady
方法中设置地图的height
,延迟100毫秒。
/* if you want to set height in DIP */
setTimeout(() => this.mapView.height = 500, 100);
或者如果你想以百分比设置高度
/* [0.85 means 85% here] */
setTimeout(() => this.mapView.height = {
unit: '%',
value: 0.85
}, 100);
100 毫秒延迟使其通过 resize
效果。在 iOS 12.1