ComponenetOne
C1Maps提供流畅的缩放、平移以及在屏幕和地理坐标之间进行映射的能力。同时您也可以在地图中添加自定义的元素。它可以从多种数据源中获取地图数据。包括 Microsoft 出品的 Live MapsTM,还可以导入地图图像文件(KML)。C1Map 支持添加标记元素,包括按钮、图表和 Label 等,标记特定地理坐标。
首先,创建 WPF 工程,添加 C1Maps 控件到页面上。
这里设置缩放值为 1 。C1Maps 包含 3 种内置地图数据源,地图数据均从在线数据源获取,包括 Aerial,,Road 和 Hybrid 视图。默认为 Aerial 视图,所以我们通过以下代码设置为 Road 视图://Add shading parameterVirtualEarthRoadSource.UriFormat += '&shading=hill';//Set map sourcec1Maps1.Source = new VirtualEarthRoadSource();我们使用以下图片来代表图钉。我们需要需要在工程目录下创建 ' Resource” 文件夹,把图片添加到该文件夹,设置 Build Action 属性为 Resource。
接下来,我们需要添加 ImageReource 到 XAML 页面。从而我们可以使用代码添加图片资源。添加以下代码到页面:
在后台添加以下代码: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 个坐标添加图片