gpt4 book ai didi

C# 在 map 上显示 gps 位置

转载 作者:行者123 更新时间:2023-11-30 14:42:35 26 4
gpt4 key购买 nike

我在 Windows 移动应用程序中工作,我想用谷歌地图显示我的当前位置。我使用了示例中的 Location dll。正如您在下面的代码中看到的,我在 gps_Locationchanged 事件中调用了更新 map 的正确方法,我在该事件中使用了 Invoke 方法来更新 pictureboxe 的图像。问题是我无法随时使用应用程序的主菜单和上下文菜单。这就像他们卡住,直到新 map 完成下载。是否有另一种方法可以在不同的线程中执行此操作,以便可以随时使用它们?

void gps_LocationChanged(object sender, LocationChangedEventArgs args)
{
if (args.Position.LatitudeValid && args.Position.LongitudeValid)
{

pictureBox1.Invoke((UpdateMap)delegate()
{
center.Latitude = args.Position.Latitude;
center.Longitude = args.Position.Longitude;
LatLongToPixel(center);
image_request2(args.Position.Latitude, args.Position.Longitude);

});
}
}

最佳答案

也许是沿着这些思路?

    bool m_fetching;

void gps_LocationChanged(object sender, LocationChangedEventArgs args)
{
if (m_fetching) return;

if (args.Position.LatitudeValid && args.Position.LongitudeValid)
{
ThreadPool.QueueUserWorkItem(UpdateProc, args);
}
}

private void UpdateProc(object state)
{
m_fetching = true;

LocationChangedEventArgs args = (LocationChangedEventArgs)state;
try
{
// do this async
var image = image_request2(args.Position.Latitude, args.Position.Longitude);

// now that we have the image, do a synchronous call in the UI
pictureBox1.Invoke((UpdateMap)delegate()
{
center.Latitude = args.Position.Latitude;
center.Longitude = args.Position.Longitude;
LatLongToPixel(center);
image;
});
}
finally
{
m_fetching = false;
}
}

关于C# 在 map 上显示 gps 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3145940/

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