gpt4 book ai didi

c# - Android 在间隔后更新谷歌地图

转载 作者:行者123 更新时间:2023-11-30 01:19:16 26 4
gpt4 key购买 nike

我必须在间隔后(比如说 10 秒)用新位置更新谷歌地图标记。纬度和经度的值每隔 10 秒从网络服务中获取一次。

我使用了计时器并使用了下面的代码。它工作正常,但使用定时器时它会在摄像头处崩溃,如下所示:

private void OnTimedEvent(object sender, GoogleMap googleMap) 
{
// return;
double latitude = Convert.ToDouble((FindViewById<EditText>(Resource.Id.txtLatitude)).Text);
double longitude = Convert.ToDouble((FindViewById<EditText>(Resource.Id.txtLongitude)).Text);
this.GMap = googleMap;

LatLng latlng = new LatLng(Convert.ToDouble(latitude), Convert.ToDouble(longitude));
CameraUpdate camera = CameraUpdateFactory.NewLatLngZoom(latlng, 15);
this.GMap.MoveCamera(CameraUpdateFactory.NewLatLng(latlng)); // it crashes here
}

异常(exception):

Java.Lang.IllegalStateException: Not on the main thread at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw ()

最佳答案

Google 关于 GoogleMap 的说明,因此 MoveCamera抛出异常的方法:

Note: ...GoogleMap can only be read and modified from the main thread. Calling GoogleMap methods from another thread will result in an exception.

将您的 GoogleMap 调用包装在 RunOnUiThread 调用中:

        RunOnUiThread(() =>
{
this.GMap.MoveCamera(CameraUpdateFactory.NewLatLng(latlng));
});

引用:RunOnUiThread

关于c# - Android 在间隔后更新谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37368346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com