-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathWindow1.xaml.cs
95 lines (83 loc) · 4.05 KB
/
Window1.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using Ptv.XServer.Controls.Map;
using Ptv.XServer.Controls.Map.Layers.Shapes;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace NokiaDemo
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1
{
public Window1()
{
InitializeComponent();
// "over-zoom" - go beyond the normal zoom level
Map.MaxZoom = 20;
Map.Loaded += Map_Loaded;
}
private void Map_Loaded(object sender, RoutedEventArgs e)
{
// To demonstrate the decomposed tiles, a rectangular shape is added.
shapeLayer = new ShapeLayer("CustomShapes") { Caption = "Custom Shapes", Opacity=.8 };
Map.Layers.Add(shapeLayer);
var poly = new MapPolygon
{
Points = new PointCollection(new[] { new Point(7.9,48.9), new Point(7.9,49.1), new Point(8.1,49.1), new Point(8.1,48.9) }),
Fill = new SolidColorBrush(Colors.Blue),
MapStrokeThickness = 3,
Stroke = new SolidColorBrush(Colors.Black)
};
shapeLayer.Shapes.Add(poly);
}
private ShapeLayer shapeLayer;
private void ModeChecked(object sender, RoutedEventArgs e)
{
// go to https://developer.here.com
const string appId = "register_for_a_free_acount";
const string appKey = "register_for_a_free_acount";
string mode = (sender as RadioButton)?.Name;
Map.Layers.RemoveBaseMapLayers();
switch (mode)
{
case "M0": // basic road map
Map.Layers.AddHereLayer(Here.HereType.MapTile, Here.HereScheme.NormalDay, appId, appKey);
break;
case "M1": // map decomposed into basemap and street
Map.Layers.AddHereLayer(Here.HereType.BaseTile, Here.HereScheme.NormalDay, appId, appKey);
Map.Layers.AddHereLayer(Here.HereType.StreetTile, Here.HereScheme.NormalDay, appId, appKey);
break;
case "M2": // map decomposed into basemap and labels
Map.Layers.AddHereLayer(Here.HereType.MapTile, Here.HereScheme.NormalDay, appId, appKey);
Map.Layers.AddHereLayer(Here.HereType.LabelTile, Here.HereScheme.NormalDay, appId, appKey);
break;
case "M3": // map decomposed into basemap, street and labels
Map.Layers.AddHereLayer(Here.HereType.BaseTile, Here.HereScheme.NormalDay, appId, appKey);
Map.Layers.AddHereLayer(Here.HereType.StreetTile, Here.HereScheme.NormalDay, appId, appKey);
Map.Layers.AddHereLayer(Here.HereType.LabelTile, Here.HereScheme.NormalDay, appId, appKey);
break;
case "M4":
Map.Layers.AddHereLayer(Here.HereType.BaseTile, Here.HereScheme.SatelliteDay, appId, appKey);
break;
case "M5":
Map.Layers.AddHereLayer(Here.HereType.BaseTile, Here.HereScheme.SatelliteDay, appId, appKey);
Map.Layers.AddHereLayer(Here.HereType.StreetTile, Here.HereScheme.NormalDay, appId, appKey);
break;
case "M6":
Map.Layers.AddHereLayer(Here.HereType.MapTile, Here.HereScheme.TerrainDay, appId, appKey);
break;
case "M7":
Map.Layers.AddHereLayer(Here.HereType.BaseTile, Here.HereScheme.TerrainDay, appId, appKey);
Map.Layers.AddHereLayer(Here.HereType.StreetTile, Here.HereScheme.NormalDay, appId, appKey);
break;
default:
Map.Layers.AddOSMLayer();
break;
}
// move shape layer under the topmost content layer
if (shapeLayer != null)
Map.Layers.Move(0, Map.Layers.Count <= 2 ? 1 : Map.Layers.Count - 2);
}
}
}