Beispiel #1
0
        public void MapExternal(ILocationModel loc, string label = null, MapExternalOptions mapOption = MapExternalOptions.Normal, double zoomLevel = 16)
        {
            if (loc == null)
            {
                throw new ArgumentNullException(nameof(loc));
            }

            PlatformBase.CurrentCore.Analytics.Event("MapExternal-" + mapOption.ToString());

            label = System.Net.WebUtility.HtmlEncode(label ?? loc.LocationDisplayName);
            string url = null;

            switch (mapOption)
            {
            case MapExternalOptions.DrivingDirections:
            {
                url = string.Format("ms-drive-to:?destination.latitude={0}&destination.longitude={1}&destination.name={2}", loc.Latitude.ToString(CultureInfo.InvariantCulture), loc.Longitude.ToString(CultureInfo.InvariantCulture), label);
                var t = Launcher.LaunchUriAsync(new Uri(url));
                break;
            }

            case MapExternalOptions.WalkingDirections:
            {
                url = string.Format("ms-walk-to:?destination.latitude={0}&destination.longitude={1}&destination.name={2}", loc.Latitude.ToString(CultureInfo.InvariantCulture), loc.Longitude.ToString(CultureInfo.InvariantCulture), label);
                var t = Launcher.LaunchUriAsync(new Uri(url));
                break;
            }

            default:
            {
                url = string.Format("bingmaps:?collection=point.{0}_{1}_{2}&lvl={3}", loc.Latitude.ToString(CultureInfo.InvariantCulture), loc.Longitude.ToString(CultureInfo.InvariantCulture), label, zoomLevel.ToString(CultureInfo.InvariantCulture));
                var t = Launcher.LaunchUriAsync(new Uri(url));
                break;
            }
            }
        }
Beispiel #2
0
 public MapExternalCommand(MapExternalOptions option = MapExternalOptions.Normal)
     : base("MapExternalCommand-" + option, (loc) => PlatformBase.CurrentCore.NavigationBase.MapExternal(loc, loc?.LocationDisplayName, option))
 {
 }