gpt4 book ai didi

c# - Xamarin 表格和 map - 在 map 上获取坐标,创建路线?

转载 作者:可可西里 更新时间:2023-11-01 05:40:48 28 4
gpt4 key购买 nike

我的应用程序使用最新版本的 Xamarin Forms。此应用程序与 map 紧密集成。 Android 和 iOS 是两个受支持的平台。

现在我可以实现两件事:

  1. 当我有坐标时在任何位置居中 map
  2. 添加自定义标记(图钉)

仍然需要以下功能(按重要性排序):

  1. 在 map 点击事件中获取坐标
  2. 获取坐标以响应某些带地址的搜索字符串
  3. 两点之间的路由(绘制路由线)
  4. 计算两点之间的时间/距离

我是 Xamarin 的新手,我检查了 Xamarin Forms Maps API,我发现没有办法用它来实现这 4 点。

我说的对吗?是否有替代的 Xamarin Forms 包?我可以使用适用于 Android/iOS 的 native Xamarin map 控件实现这些功能中的任何一个吗?

非常感谢任何信息或示例!搜索和浏览论坛没有帮助。我找到了一些带有 Java 示例的 Google Maps API 解决方案,但我不知道如何在 Xamarin 中实现它。由于应用程序的很大一部分已经在 Xamarin 中实现,而且我已经习惯了 C#,所以我不想更改平台。

最佳答案

您将需要查找 native iOS 和 Android 实现来完成这项工作,但您应该使用 SAP 或 PCL 中的依赖项注入(inject)来调用 native 实现来满足您的需要。

*注意 - 这是为了提供有关如何进行此操作的一般概述,而不是复制粘贴实现。未实现开放 map ,也未实现有关如何或何时在共享代码中获取坐标的说明。

例子

在共享代码中-

interface IMapping
{
public OpenMap();
public Model<GeoPoint>GetLastTouchCoordinates();
}

在安卓项目中-

//For use with Xamarin.Forms.DependencyService will not be necessary with other IoC containers if not using forms look up Tiny IoC, Unity or one of the other DI containers
[assembly: Xamarin.Forms.Dependency(typeof(YourNameSpace.Droid.YourClass))]

public class GoogleMap : FragmentActivity, IMapping, IOnMapClickListener

{
private GoogleMap mMap;
private Point lastClickedPoint;

protected void OnCreate()
{
base.OnCreate();
setContentView(some map fragment layout)

//set the map touch listener
}

private void handletouch()// implementation of IOnMapClickListener Interface
{
//google how to get the coordinates in android on a map touch
lastClickedPoint = new Point();
lastClickedPoint.lat = args.lat;
lastClickedPoint.long = args.long;
}

private Model<GeoPoint> GetLastTouchCoordinates()
{
if(lastclickedPoint != null)
{
Model<Geopoint> gp = new Model<Geopoint>();
gp.latitude = p.latitude;
gp.longitude = p.longitude;
return gp;
}
else
{
return Point with some indication that you have no point
}

}
}

在共享代码中 --

现在使用它只需写这样的东西

DependencyService.Get<IMapping>.OpenMap()
DependencyService.Get<IMapping>.GetLastTouchCoordinates()

链接到有关跨平台代码中的依赖注入(inject)的更多详细信息 http://adventuresinxamarinforms.com/2014/11/17/creating-a-xamarin-forms-application-part-4-dependency-injection/

关于c# - Xamarin 表格和 map - 在 map 上获取坐标,创建路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28087381/

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