ArcGIS web 地图在 c# winform 中
ArcGIS web map in c# winform
我想在我的 winform C# 应用程序中实现 ArcGIS web 地图。我在 WPF 应用程序中找到了很多资源来执行此操作,但没有找到用于 winform 平台的资源。我有一个来自 ArcGIS 的 API-Key 并且已经制作了一个网络地图。
有谁知道这是否可行,或者我是否需要使用 WPF 来执行此操作?我已经尝试过 GMap 开源,它确实支持来自 ArcGIS 的一些地图,但我还没有弄清楚如何从 link 添加“自定义”网络地图。我还需要向我的示例添加凭据。
F.eks
Map.MapProvider = GMap.NET.MapProviders.ArcGIS_World_Street_MapProvider.Instance;
编辑,
遗憾的是,最好的解决方案似乎是在 winform 应用程序中实现一个 wpf 控制器。
如果我没看错你想要一张世界地图,我不知道你打算用它做什么,所以如果你只是想显示一张世界地图,那么我找到了一个关于此的 YouTube 教程可能会有所帮助,
https://www.youtube.com/watch?v=TxSJJfaAzKg
如果您想要交互式地图并且 arcgis 会为您完成,那么您可以在 winforms 应用程序中模拟 WPF 控件,
https://www.youtube.com/watch?v=VfpzVDAJ1fE
抱歉,如果我只是将 YouTube 视频显示为来源而不是实际文档,但至少它完成了工作。
您绝对可以使用 Esri ArcGIS Runtime SDK 来执行此操作。是的,它是一个 WPF 控件,但这没问题。您需要使用 ElementHost 在 WinForms 视图中托管 WPF 内容,这完全受支持,但运行时。请注意,WinForms 使用软件呈现,因此您无法获得与纯 WPF、UWP 或 WinUI3 window 一样好的性能。
因此,您只需按照找到的有关如何在 WPF 中执行此操作的所有文档进行操作,然后在 WinForms 应用程序的 ElementHost 中呈现该部分视图。
WinForms 元素宿主文档:https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.integration.elementhost?view=net-5.0
在 WinForms 中承载 WPF 的概念doc/examples:
- https://docs.microsoft.com/en-us/dotnet/desktop/winforms/advanced/walkthrough-creating-new-wpf-content-on-windows-forms-at-design-time?view=netframeworkdesktop-4.8
- https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/walkthrough-hosting-a-wpf-composite-control-in-windows-forms?view=netframeworkdesktop-4.8
- https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/walkthrough-hosting-a-3-d-wpf-composite-control-in-windows-forms?view=netframeworkdesktop-4.8
/Morten Nielsen - 开发负责人(ArcGIS Runtime SDK for .NET)
我想在我的 winform C# 应用程序中实现 ArcGIS web 地图。我在 WPF 应用程序中找到了很多资源来执行此操作,但没有找到用于 winform 平台的资源。我有一个来自 ArcGIS 的 API-Key 并且已经制作了一个网络地图。
有谁知道这是否可行,或者我是否需要使用 WPF 来执行此操作?我已经尝试过 GMap 开源,它确实支持来自 ArcGIS 的一些地图,但我还没有弄清楚如何从 link 添加“自定义”网络地图。我还需要向我的示例添加凭据。
F.eks Map.MapProvider = GMap.NET.MapProviders.ArcGIS_World_Street_MapProvider.Instance;
编辑, 遗憾的是,最好的解决方案似乎是在 winform 应用程序中实现一个 wpf 控制器。
如果我没看错你想要一张世界地图,我不知道你打算用它做什么,所以如果你只是想显示一张世界地图,那么我找到了一个关于此的 YouTube 教程可能会有所帮助, https://www.youtube.com/watch?v=TxSJJfaAzKg
如果您想要交互式地图并且 arcgis 会为您完成,那么您可以在 winforms 应用程序中模拟 WPF 控件, https://www.youtube.com/watch?v=VfpzVDAJ1fE
抱歉,如果我只是将 YouTube 视频显示为来源而不是实际文档,但至少它完成了工作。
您绝对可以使用 Esri ArcGIS Runtime SDK 来执行此操作。是的,它是一个 WPF 控件,但这没问题。您需要使用 ElementHost 在 WinForms 视图中托管 WPF 内容,这完全受支持,但运行时。请注意,WinForms 使用软件呈现,因此您无法获得与纯 WPF、UWP 或 WinUI3 window 一样好的性能。 因此,您只需按照找到的有关如何在 WPF 中执行此操作的所有文档进行操作,然后在 WinForms 应用程序的 ElementHost 中呈现该部分视图。
WinForms 元素宿主文档:https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.integration.elementhost?view=net-5.0
在 WinForms 中承载 WPF 的概念doc/examples:
- https://docs.microsoft.com/en-us/dotnet/desktop/winforms/advanced/walkthrough-creating-new-wpf-content-on-windows-forms-at-design-time?view=netframeworkdesktop-4.8
- https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/walkthrough-hosting-a-wpf-composite-control-in-windows-forms?view=netframeworkdesktop-4.8
- https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/walkthrough-hosting-a-3-d-wpf-composite-control-in-windows-forms?view=netframeworkdesktop-4.8
/Morten Nielsen - 开发负责人(ArcGIS Runtime SDK for .NET)