3

在 iOS 中,当我放置标记和 mapView 位置时,地图不会居中显示,但如果我将手机移动到横向并再次旋转到纵向,地图中心显示正常。在 Android 中工作正常。

您可以在此 GitHub 问题中获得更多信息: https ://github.com/dapriett/nativescript-google-maps-sdk/issues/322

4

1 回答 1

7

我亲自面对过这个问题,发现这基本上是 iOS 上的布局问题。提供给 MapView 的 XML 元素的heightwidth属性值在 iOS 中的处理方式有些不同。如问题本身所述,我们问题的解决方案是resizing运行时的地图(因为旋转屏幕使其通过调整大小例程)。在地图渲染开始时应用这种荒谬的逻辑,解决了这个问题。

我是这样做的:

在 XML 中提供widthMapView 的值:

<maps:mapView width="100%" mapReady="onMapReady" />

并设置heightmap insideonMapReady方法,延迟 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 上测试

于 2019-01-30T16:52:48.890 回答