Xamarin.EssentialsMap:

Map 클래스를 사용하면 애플리케이션이 설치된 지도 애플리케이션에서 특정 위치나 placemark를 열 수 있습니다.

시작하기

이 API를 사용하기 전에 라이브러리가 제대로 설치되고 프로젝트에 설정되어 있는지 확인하기 위해 Xamarin.Essentials에 대한 시작 가이드를 읽어보세요.

Map 사용

클래스에서 Xamarin.Essentials에 대한 참조를 추가합니다.

using Xamarin.Essentials;

Map 기능은 선택적 MapLaunchOptions를 사용해서 열려는 Location 또는 PlacemarkOpenAsync 메서드를 호출하여 작동합니다.

public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var location = new Location(47.645160, -122.1306032);
        var options =  new MapLaunchOptions { Name = "Microsoft Building 25" };

        try
        {
            await Map.OpenAsync(location, options);
        }
        catch (Exception ex)
        {
            // No map application available to open
        }
    }
}

Placemark로 여는 경우 다음 정보가 필요합니다.

  • CountryName
  • AdminArea
  • Thoroughfare
  • Locality
public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var placemark = new Placemark
            {
                CountryName = "United States",
                AdminArea = "WA",
                Thoroughfare = "Microsoft Building 25",
                Locality = "Redmond"
            };
        var options =  new MapLaunchOptions { Name = "Microsoft Building 25" };

        try
        {
            await Map.OpenAsync(placemark, options);
        }
        catch (Exception ex)
        {
            // No map application available to open or placemark can not be located
        }
    }
}

확장명 메서드

Location 또는 Placemark에 대한 참조가 이미 있는 경우 선택적 MapLaunchOptions와 함께 기본 제공 확장 메서드 OpenMapAsync를 사용할 수 있습니다.

public class MapTest
{
    public async Task OpenPlacemarkOnMap(Placemark placemark)
    {
        try
        {
            await placemark.OpenMapAsync();
        }
        catch (Exception ex)
        {
            // No map application available to open
        }
    }
}

길 찾기 모드

MapLaunchOptions 없이 OpenMapAsync를 호출하면 지도가 지정한 위치에서 시작됩니다. 필요에 따라, 탐색 경로가 디바이스의 현재 위치에서 계산되도록 할 수 있습니다. 이렇게 하려면 MapLaunchOptions에서 NavigationMode를 설정합니다.

public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var location = new Location(47.645160, -122.1306032);
        var options =  new MapLaunchOptions { NavigationMode = NavigationMode.Driving };

        await Map.OpenAsync(location, options);
    }
}

플랫폼의 차이점

  • NavigationMode에서 자전거 타기, 자가용, 걷기를 지원합니다.

플랫폼 구현 관련 정보

Android는 geo: URI 체계를 사용하여 디바이스에서 지도 애플리케이션을 시작합니다. 이 URI 체계를 지원하는 기존 앱에서 선택하라는 메시지가 사용자에게 표시될 수 있습니다. Xamarin.Essentials는 이 체계를 지원하는 Google Maps로 테스트되었습니다.

API

Channel 9YouTube에서 더 많은 Xamarin 비디오를 확인하세요.