多语言展示
当前在线:131今日阅读:113今日分享:31

使用ComponenetOne C1Maps地图控件绘制地理位置

这篇文章中我们将在地图上添加图钉去标记特定地理位置。我们可以通过 Click 事件添加图钉,同时,我们可以删除或拖拽现有图钉
工具/原料

ComponenetOne

方法/步骤
1

C1Maps提供流畅的缩放、平移以及在屏幕和地理坐标之间进行映射的能力。同时您也可以在地图中添加自定义的元素。它可以从多种数据源中获取地图数据。包括 Microsoft 出品的 Live MapsTM,还可以导入地图图像文件(KML)。C1Map 支持添加标记元素,包括按钮、图表和 Label 等,标记特定地理坐标。

2

首先,创建 WPF 工程,添加 C1Maps 控件到页面上。

3

这里设置缩放值为 1 。C1Maps 包含 3 种内置地图数据源,地图数据均从在线数据源获取,包括 Aerial,,Road 和 Hybrid 视图。默认为 Aerial 视图,所以我们通过以下代码设置为 Road 视图://Add   shading parameterVirtualEarthRoadSource.UriFormat   += '&shading=hill';//Set   map sourcec1Maps1.Source   = new VirtualEarthRoadSource();我们使用以下图片来代表图钉。我们需要需要在工程目录下创建 ' Resource” 文件夹,把图片添加到该文件夹,设置 Build Action 属性为 Resource。

4

接下来,我们需要添加 ImageReource 到 XAML 页面。从而我们可以使用代码添加图片资源。添加以下代码到页面:Resources/Pushpin.png

5

在后台添加以下代码:var items = new C1MapItemsLayer();c1Maps1.Layers.Add(items);c1Maps1.MouseLeftButtonUp += new MouseButtonEventHandler(c1Maps1_MouseLeftButtonUp);Random rnd = new Random();for (int i = 0; i < 10; i++){Point pt = new Point(-80 + rnd.Next(160), -80 + rnd.Next(160));AddPin(pt);}以下代码添加 Items Layer 到 C1Maps 控件。这里随机生成 10 个坐标添加图片。void AddPin(Point pt){Image pin = new Image();pin.Source = (ImageSource)FindResource('PushPin');C1MapCanvas.SetPinpoint(pin, new Point(10, 31));C1MapCanvas.SetLatLong(pin, pt);var items = this.c1Maps1.Layers[0] as C1MapItemsLayer;items.Items.Add(pin);}以下代码添加 Items Layer 到 C1Maps 控件。这里随机生成 10 个坐标添加图片

推荐信息