iOS 中使用 nativescript-google-maps-sdk 的地图中心错误

Posted

技术标签:

【中文标题】iOS 中使用 nativescript-google-maps-sdk 的地图中心错误【英文标题】:Wrong map center in iOS using nativescript-google-maps-sdk 【发布时间】:2019-06-10 15:00:55 【问题描述】:

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

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

【问题讨论】:

您是否尝试在 mapReady 事件中设置纬度和经度? 是的,定位有效,但有点位移 【参考方案1】:

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

我就是这样做的:

在 XML 中提供 MapView 的 width 值:

<maps:mapView  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 中使用 nativescript-google-maps-sdk 的地图中心错误的主要内容,如果未能解决你的问题,请参考以下文章

在 React Native 应用程序中使用 Branch.io 在 iOS 中延迟深度链接

可以在iOS中使用RFCOMM吗?

在支持 iOS 13.0 的同时在 iOS 14.0 中使用 @StateObject

在 iOS 13 中使用 UISearchController 时,状态栏在 iOS 中变为白色

我应该如何在 iOS 7 中使用具有 iOS 6 风格的 UIButtons?

iOS中JSONModel的使用