다음을 통해 공유


Azure Maps 공간 IO 모듈을 사용하는 방법

Azure Maps 웹 SDK는 공간 IO 모듈을 제공합니다. 이 모듈은 공간 데이터를 JavaScript 또는 TypeScript를 사용하여 Azure Maps 웹 SDK와 통합합니다. 이 모듈의 강력한 기능을 통해 개발자는 다음을 수행할 수 있습니다.

  • 공간 데이터 읽기 및 쓰기. 지원되는 파일 형식에는 공간 정보가 있는 열을 포함하는 KML, KMZ, GPX, GeoRSS, GML, GeoJSON 및 CSV 파일이 포함됩니다. 또한 WKT(Well-Known Text)도 지원합니다.
  • OGC(Open Geospatial Consortium) 서비스에 연결하고 Azure Maps 웹 SDK와 통합하고 WMS(Web Map Services)와 WMTS(Web Map Tile Services)를 지도의 레이어로 오버레이합니다. 자세한 내용은 OGC(Open Geospatial Consortium)에서 맵 계층 추가를 참조하세요.
  • WFS(Web Feature Service)에서 데이터를 쿼리합니다. 자세한 내용은 WFS 서비스에 연결을 참조하세요.
  • 스타일 정보가 포함된 복잡한 데이터 세트를 오버레이하고 자동으로 렌더링합니다. 자세한 내용은 간단한 데이터 레이어 추가를 참조하세요.
  • 고속 XML 및 경계가 정해진 파일 읽기 권한자와 작성기 클래스를 활용합니다. 자세한 내용은 Core IO 작업을 참조하세요.

이 가이드는 웹 애플리케이션에서 Spatial IO 모듈을 통합하고 사용하는 방법을 보여 줍니다.

이 비디오는 Azure Maps 웹 SDK의 공간 IO 모듈에 대한 개요를 제공합니다.


Warning

신뢰하는 원본에서 가져온 데이터 및 서비스만 사용합니다(특히 다른 도메인에서 참조하는 경우). 공간 IO 모듈은 위험을 최소화하는 단계를 수행하지만, 가장 안전한 방법은 애플리케이션에 처음부터 위험한 데이터를 사용하지 않는 것입니다.

필수 조건

공간 IO 모듈 설치

다음 두 옵션 중 하나를 사용하여 Azure Maps 공간 IO 모듈을 로드할 수 있습니다.

  • Azure Maps 공간 IO 모듈에 대해 전역적으로 호스트된 Azure CDN입니다. 이 옵션의 경우 HTML 파일의 <head> 요소에 JavaScript에 대한 참조를 추가합니다.

    <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script>
    
  • azure-maps-spatial-io에 대한 소스 코드를 로컬로 로드한 다음 앱을 사용하여 호스트할 수 있습니다. 이 패키지에는 TypeScript 정의도 포함됩니다. 이 옵션의 경우 다음 명령을 사용하여 패키지를 설치합니다.

    npm install azure-maps-spatial-io
    

    그런 다음 가져오기 선언을 사용하여 모듈을 원본 파일에 추가합니다.

    import * as spatial from "azure-maps-spatial-io";
    

    자세한 내용은 Azure Maps 맵 컨트롤 npm 패키지 사용 방법을 참조하세요.

공간 IO 모듈 사용

  1. 새 HTML 파일 만들기

  2. Azure Maps 웹 SDK를 로드하고 지도 컨트롤을 초기화합니다. 자세한 내용은 Azure Maps 지도 컨트롤 가이드를 참조하세요. 이 단계를 완료하고 나면 HTML 파일이 다음과 같이 표시됩니다.

    <!DOCTYPE html>
    <html>
    
    <head>
        <title></title>
    
        <meta charset="utf-8">
    
        <!-- Ensures that Internet Explorer and Edge uses the latest version and doesn't emulate an older version -->
        <meta http-equiv="x-ua-compatible" content="IE=Edge">
    
        <!-- Ensures the web page looks good on all screen sizes. -->
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Add references to the Azure Maps Map control JavaScript and CSS files. -->
        <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" />
        <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.js"></script>
    
        <script type='text/javascript'>
    
            var map;
    
            function GetMap() {
                //Initialize a map instance.
                map = new atlas.Map('myMap', {
                    view: 'Auto',
    
                    //Add your Azure Maps subscription key to the map SDK. Get an Azure Maps key at https://azure.com/maps
                    authOptions: {
                        authType: 'subscriptionKey',
                        subscriptionKey: '<Your Azure Maps Key>'
                    }
                });
    
                //Wait until the map resources are ready.
                map.events.add('ready', function() {
    
                    // Write your code here to make sure it runs once the map resources are ready
    
                });
            }
        </script>
    </head>
    
    <body onload="GetMap()">
        <div id="myMap" style="position:relative;width:100%;min-width:290px;height:600px;"></div>
    </body>
    
    </html>
    
  3. Azure Maps 공간 IO 모듈을 로드합니다. 이 연습에서는 Azure Maps 공간 IO 모듈에 대해 CDN을 사용합니다. HTML 파일의 <head> 요소에 다음 참조를 추가합니다.

    <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script>
    
  4. datasource를 초기화하고 지도에 데이터 원본을 추가합니다. layer를 초기화하고 지도 레이어에 데이터 원본을 추가합니다. 그런 다음 데이터 원본 및 레이어를 모두 렌더링합니다. 다음 단계에서 전체 코드를 볼 수 있도록 아래로 스크롤하기 전에 먼저 데이터 원본과 레이어 코드 조각을 배치할 가장 좋은 위치를 생각해 놓아야 합니다. 지도를 프로그래밍 방식으로 조작하기 전에 지도 리소스가 준비될 때까지 기다려야 합니다.

    var datasource, layer;
    

    //Create a data source and add it to the map.
    datasource = new atlas.source.DataSource();
    map.sources.add(datasource);
    
    //Add a simple data layer for rendering the data.
    layer = new atlas.layer.SimpleDataLayer(datasource);
    map.layers.add(layer);
    
  5. 이제 HTML 코드는 다음 코드와 같아야 합니다. 이 샘플에서는 맵에 XML 파일의 기능 데이터를 표시하는 방법을 보여 줍니다.

    참고 항목

    이 예에서는 Route66Attractions.xml을 사용합니다.

    <!DOCTYPE html>
    <html>
    <head>
        <title>Spatial IO Module Example</title>
    
        <meta charset="utf-8">
    
        <!-- Ensures that Internet Explorer and Edge uses the latest version and doesn't emulate an older version -->
        <meta http-equiv="x-ua-compatible" content="IE=Edge">
    
        <!-- Ensures the web page looks good on all screen sizes. -->
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Add references to the Azure Maps Map control JavaScript and CSS files. -->
        <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" />
        <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.js"></script>
    
        <!-- Add reference to the Azure Maps Spatial IO module. -->
        <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script>
    
        <script type='text/javascript'>
            var map, datasource, layer;
    
            function GetMap() {
                //Initialize a map instance.
                map = new atlas.Map('myMap', {
                    view: 'Auto',
    
                    //Add your Azure Maps subscription key to the map SDK. Get an Azure Maps key at https://azure.com/maps
                    authOptions: {
                        authType: 'subscriptionKey',
                        subscriptionKey: '<Your Azure Maps Key>'
                    }
                });
    
                //Wait until the map resources are ready.
                map.events.add('ready', function() {
    
                    //Create a data source and add it to the map.
                    datasource = new atlas.source.DataSource();
                    map.sources.add(datasource);
    
                    //Add a simple data layer for rendering the data.
                    layer = new atlas.layer.SimpleDataLayer(datasource);
                    map.layers.add(layer);
    
                    //Read an XML file from a URL or pass in a raw XML string.
                    atlas.io.read('Route66Attractions.xml').then(r => {
                        if (r) {
                            //Add the feature data to the data source.
                            datasource.add(r);
    
                            //If bounding box information is known for data, set the map view to it.
                            if (r.bbox) {
                                map.setCamera({
                                    bounds: r.bbox,
                                    padding: 50
                                });
                            }
                        }
                    });
                });
            }
        </script>
    </head>
    <body onload='GetMap()'>
        <div id="myMap" style="position:relative;width:100%;min-width:290px;height:600px;"></div>
    </body>
    </html>
    
  6. <Your Azure Maps Key>를 구독 키로 바꿉니다. HTML 파일에 다음 이미지와 유사한 결과가 표시됩니다.

    지도에 공간 데이터 샘플을 보여주는 스크린샷입니다.

다음 단계

설명하는 기능은 공간 IO 모듈에서 사용할 수 있는 여러 기능 중 하나일 뿐입니다. Spatial IO 모듈의 다른 기능을 사용하는 방법을 알아보려면 다음 가이드를 참조하세요.

Azure Maps 공간 IO 설명서를 참조하세요.