google.maps.ElevationService в Typescript не может найти LocationElevationRequest - PullRequest
0 голосов
/ 06 апреля 2019

В документах Google Maps JS, пример для службы высот (короче) делает это:

var elevator = new google.maps.ElevationService
elevator.getElevationForLocations({
    'locations': [location]
  }, function(results, status) {

  ... etc
})

но в Typescript (используя "@types/googlemaps": "3.30.19") яполучить немного странности.Во-первых, вместо ожидаемого google.maps.ElevationService.getElevationForLocations() я должен использовать google.maps.ElevationService.prototype.getElevationForLocations().Во-вторых, и главная проблема, с которой я столкнулся, это то, что я не могу получить доступ к google.maps.LocationElevationRequest.В файле наборов я вижу это:

screen shot of google maps typings

, но в моем коде при попытке google.maps.LocationElevationRequest я получаю сообщение об ошибке Property 'LocationElevationRequest' does not exist on type 'typeof maps'. Нет количествапроизвольная вставка prototype тоже работает.Это дыра в наборе? Этот комментарий от нескольких лет назад утверждает, что он учитывается.


Обновление # 1

Я использую google.maps.PolygonOptions вдругие места, аналогичные интерфейсу LocationElevationRequest:

declare namespace google.maps {

...

  export interface PolygonOptions {
    /**
     * Indicates whether this Polygon handles mouse events. Defaults to true.
     */
    clickable?: boolean;

    ...

  }

  export interface LocationElevationRequest {
    locations: LatLng[];
  }
}

1 Ответ

0 голосов
/ 06 апреля 2019

лол мой плохой. Это вопрос о Typescript. Вот правильный путь:

let request: google.maps.LocationElevationRequest = {locations: [e.latLng]}
google.maps.ElevationService.prototype.getElevationForLocations(
    request, (
        results: google.maps.ElevationResult[],
        status: google.maps.ElevationStatus) => {
            ...
        })
...