执行UI块时引发异常:无效的区域<center:+ 37.33233141,=“” -122.03121860,=“” span:=“” + 0.04491556,=“” -5.73770224 =“”>

时间:2019-03-28 19:42:50

标签: react-native react-native-maps

我正在使用react-native-maps构建应用。在测试中,我使用一个按钮进行设置,该按钮可以在两个不同的位置(DC和Concord NH)之间切换,而其中之一恰好是我当前的实际位置。我也有一个“找我!”按钮转到当前位置。

在Android模拟器上,当我点击“找到我”时,它会跳转到San Fransisco,我认为这是设置模拟器位置的地方。我没有真正的Android设备

在iOS模拟器和iPhone上,DC / NH按钮都可以使用,当我切换到DC时,在iPhone上可以看到蓝点。但是,在iOS模拟器和iPhone上,当我单击“找到我”时,我都会收到此错误(以下坐标是在模拟器上运行时的结果:

Exception thrown while executing UI block:
Invalid Region <center: +37.33233141, -122.03121860, span: +0.04491556, -5.73770224>

在我的iPhone上,使用不同的坐标明智地发生了相同的错误。

似乎Android和iOS正在不同地转换坐标,或类似的东西。他们对我给DC和NH给出的坐标都相同,并且当我调高这些位置时似乎显示相同的区域。

顺便说一句,我在iOS上使用Apple Maps –还没准备好完成使用Google Maps的全部弹出代码的事情。

这是我用来获取当前位置并将其转换为React Native可以正确理解的数字的代码:

 calculateRegion(latitude, longitude, accuracy) {
    const oneDegreeOfLongitudeInMeters = 111.32;
    const circumference = 40075 / 360;
    const latitudeDelta = accuracy / oneDegreeOfLongitudeInMeters;
    const longitudeDelta = accuracy * (1 / Math.cos(latitude * circumference));
    const region = { latitude, longitude, latitudeDelta, longitudeDelta };
    this.setState({ region });
  }

  getLocation = () => {
    navigator.geolocation.getCurrentPosition(position => {
      const lat = position.coords.latitude;
      const long = position.coords.longitude;
      const accuracy = position.coords.accuracy;
      this.calculateRegion(lat, long, accuracy);
    });
  };

有人对此有想法吗?

0 个答案:

没有答案