올바른 방법으로 지오코딩 통합

이것은 다음과 같은 방식으로 Geocode를 Node.js 애플리케이션에 통합하는 방법을 다루는 시리즈의 첫 번째 기사입니다.
  • 중단되지 않는 통합 생성
  • 위치에 따라 다른 API 공급자 사용
  • 필요한 데이터를 항상 얻을 수 있도록 하십시오
  • .

    단일 최고의 공급자는 없습니다



    지오코딩을 통합할 때 대부분의 개발자는 몇 가지 지오코딩 API 공급자를 비교하는 것으로 시작하여 가장 좋아 보이는 것을 선택하고 앱에서 굽습니다.

    그러나 단일 최고의 Geocoding API는 없습니다. 더욱이, 고려되는 모든 공급자에 익숙해지는 데는 시간이 걸리며, 단 하나의 하드 와이어링은 벤더 고정 외에는 아무 것도 달성하지 못합니다.

    모두 통합



    유니콘을 찾는 대신 런타임에 선호하는 제공자에 액세스하십시오. 이는 많은 API에 대한 범용 인터페이스 역할을 하는 Superface의 오픈 소스 OneSDK를 사용하여 달성할 수 있습니다. 방법은 다음과 같습니다.

    Superface OneSDK를 사용하여 지오코딩 통합



    다음 단계는 매우 간단하지만 이것이 Superface를 처음 실행하는 경우이거나 후드 아래에서 발생하는 상황을 더 잘 이해하려는 경우read the documentation .

  • 프로젝트 폴더에 Superface OneSDK 패키지를 설치합니다.

    npm install @superfaceai/one-sdk
    

  • address/geocoding 프로필을 설치합니다.

    npx @superfaceai/cli install address/geocoding
    


  • 원하는 제공업체를 구성합니다. Nominatim는 API를 공개적으로 제공합니다. 키가 필요하지 않습니다.

    # Here.com
    npx @superfaceai/cli configure here -p address/geocoding
    
    # Google Maps
    npx @superfaceai/cli configure google-apis-maps -p address/geocoding
    
    # Azure Maps
    npx @superfaceai/cli configure azure -p address/geocoding
    
    # OpenCage
    npx @superfaceai/cli configure opencage -p address/geocoding
    
    # TomTom
    npx @superfaceai/cli configure opencage -p address/geocoding
    
    # Nominatim
    npx @superfaceai/cli configure nominatim -p address/geocoding
    

    다른 공급자가 필요한 경우 let me know.

  • 원하는 공급자의 API 키를 가져와서 환경 변수로 설정합니다.

    # Here.com
    export HERE_API_KEY=your-value-from-here
    
    # Google Maps
    export GOOGLE_APIS_MAPS_API_KEY=your-value-from-google-maps
    
    # Azure Maps
    export AZURE_API_KEY=your-value-from-azure
    
    # OpenCage
    export OPENCAGE_API_KEY=your-value-from-opencage
    
    # TomTom
    export TOMTOM_API_KEY=your-value-from-tomtom
    

    API 키를 얻는 방법: Here.com | Google Maps | Azure Maps | OpenCage | TomTom

  • Node.js 애플리케이션에서 다음 코드를 사용하고 예제 주소를 입력으로 바꿉니다.

    const { SuperfaceClient } = require('@superfaceai/one-sdk');
    
    async function Geocoding() {
      const sdk = new SuperfaceClient();
    
      // Load the installed profile
      const profile = await sdk.getProfile('address/geocoding');
    
      // Choose the provider
      const provider = await sdk.getProvider('nominatim');
    
      // Use the profile
      const result = await profile
        .getUseCase('Geocode')
        .perform({
          addressCountry: 'United States',
          addressLocality: 'Manhattan',
          postalCode: 'NY 10036',
          streetAddress: 'Times Square',
        },
        { provider }
      );
    
      // Check out the result
      try {
        const data = result.unwrap();
        console.log(data);
      } catch (error) {
        console.error(error);
      }
    }
    
    Geocoding();
    


  • 코드를 실행합니다.
    Geocoding 함수를 호출하면 비슷한 결과가 반환됩니다.

    { latitude: '40.757280550000004', longitude: '-73.98585503545917' }
    


  • 그리고 그게 다야. 기본 통합이 준비되었습니다.

    다음 읽기



  • 좋은 웹페이지 즐겨찾기