Google Maps API - настройка значка маркера приводит к ошибке: «Ошибка конструктора не может быть вызвана без« нового »» - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь создать некоторые маркеры для добавления с помощью API Карт Google, но если я пытаюсь указать значок, я получаю ошибку: «Ошибка конструктора не может быть вызвана без« нового »».

Я запускаю это через locahost.

Вещи, которые я пробовал:

  • Создание маркера, а затем настройка значка.
  • Различные версии API.
  • Подключение моего ключа API в JSFiddle.(Без ошибок.)
  • Удаление / комментирование линий значков.(Работает нормально со значком по умолчанию.)

Код в значительной степени дословен от поставляемого Google JSFiddle для этого, и он работает там, но не на странице, над которой я работаю.

const latlng = new google.maps.LatLng(this.location[0], this.location[1]);
this.marker = new google.maps.Marker({
  position: latlng,
  icon: {
    path: google.maps.SymbolPath.CIRCLE,
    scale: 10
  },
  draggable: false
});

У меня должен быть значок круга в указанной позиции, но вместо этого я получаю следующее:

js? V = еженедельно & ключ = (APIKEY): 53 Uncaught TypeError: ClassКонструктор Ошибка не может быть вызвана без 'new'
в новом Yc (: 53)
в Object ._. $ c (: 53)
в: 56
at: 56
at:56
в _.nf.setIcon (: 66)
в .nf. .T.setValues ​​(: 165)
в _.nf.mf [как конструктор] (:79)
в новом _.nf (: 79)
в User.createMarker (classes.js: 329)

Мне кажется, что есть проблема в коде API, которыйзатрудняя отладку фактической проблемы, которая вызывает ошибку.

Будем благодарны за любые предложения.

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Происходит то, что API вызывает глобальный объект Error в цепочке функций setIcon (несмотря на полное отсутствие ошибок), что вызывало ошибку из-за того, что я переопределил его с помощью пользовательского класса Error Я наивно пытался добавить в проект.

Информация об ошибке:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error

0 голосов
/ 03 июня 2019

Вы разместили место в классе? Я изменил официальный JSFiddle для использования класса, и он работает.

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: {
      lat: -25.363882,
      lng: 131.044922
    }
  });

  var Location = class Location {
    constructor(lat, lng) {
      this.location = [lat, lng]
      const latlng = new google.maps.LatLng(this.location[0], this.location[1]);
      this.marker = new google.maps.Marker({
        position: latlng,
        icon: {
          path: google.maps.SymbolPath.CIRCLE,
          scale: 10
        },
        draggable: false
      });
      this.marker.setMap(map);
    }

  }

  var location = new Location(-25.363882, 131.044922);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...