首页 > 解决方案 > 谷歌地图折线不显示和抛出错误

问题描述

我有 Ionic 3 应用程序,我已将其更新为 IONIC 4 。因此,当我为 ios 12 使用 xcode 10 编译应用程序时,谷歌地图折线不会呈现和抛出错误。它在 IONIC 3 和 ios 11.3 上渲染得非常好,但更新后它停止显示:我的代码是:

for (const path of dashedlinePaths) {

  const lineSymbol = {
    path: 'M 0,-1 0,1',
    strokeOpacity: 1,
    scale: 4
  };

  let dashedPath = new google.maps.Polyline({
    path: path,
    geodesic: true,
    strokeOpacity: 0,
    strokeColor: '#ff883c',
    icons: [{
      icon: lineSymbol,
      offset: '0',
      repeat: '20px'
    }]
  });

  dashedPath.setMap(this.googleMap);
}

for (const path of linePaths) {

  let linePath = new google.maps.Polyline({
    path: path,
    geodesic: true,
    strokeColor: '#ff883c',
    strokeOpacity: 1.0,
    strokeWeight: 4
  });

  linePath.setMap(this.googleMap);
}

错误显示如下:

TypeError: null is not an object (evaluating 'e.lineJoin="round"')
runTask — polyfills.js:3880
invokeTask — polyfills.js:4017
n — polyfills.js:3457
runTask — polyfills.js:3880

它还显示警告,例如:

Total canvas memory use exceeds the maximum limit (224 MB).lW — poly.js:52:321

此外,当我尝试缩放地图时出现错误:

TypeError: null is not an object (evaluating 'a.scale')
runTask — polyfills.js:3880
invokeTask — polyfills.js:4017
n — polyfills.js:3457
runTask — polyfills.js:3880

标签: javascripttypescriptgoogle-maps-api-3ionic3

解决方案


这是 iOS Safari 上的 Google Maps JS SDK 中的一个错误。

谷歌已经承认了,这里有两张为此创建的票,一张甚至包含一个解释如何重现它的小提琴。

https://issuetracker.google.com/issues/119875119

https://issuetracker.google.com/issues/115289894


推荐阅读