Ошибка Google Maps: не является LatLng или LatLngLiteral: не является объектом - кажется, связано с границами - PullRequest
0 голосов
/ 06 ноября 2019

Я импортирую адреса из таблицы Google и помещаю их на карту Google. Местоположение (широта и долгота) хранятся в переменной. Я перебираю все записи и создаю маркеры. Связь между таблицей Google и веб-сайтом работает, но она показывает только первую запись. Так что, похоже, проблема с циклом.

Сначала я подумал, что это проблема со значениями в _location.latitude/_location.longitude, и я попытался установить значение .value там, но это не проблема.

Цикл находится в функции _setLocations, и из моего поиска кажется, что var _bounds или _bounds.extend имеет некоторые проблемы

_createGoogleMap: function(_mapID){

          var _this = this;

          var _locations = [];

          var _sheetUrl = 'https://sheets.googleapis.com/v4/spreadsheets/xxxxxxxxxxxxxxxxxxx/values/Sheet1!A2:U?key=xxxxxxxxxxxxxxxxxxxxxx';

          var _map = new google.maps.Map(document.getElementById(_mapID), this._mapProp);

          $.getJSON(_sheetUrl, function(data) {
            $(data.values).each(function() {
              var _location = {};
                _location.latitude = parseFloat(this[8]);
                _location.longitude = parseFloat(this[9]);
                _locations.push(_location);
            });

            _this._setLocations(_map, _locations);

          });
        },


_setLocations: function(_map, _locations) {

          var _this = this;

          var _bounds = new google.maps.LatLngBounds();

          var _infowindow = new google.maps.InfoWindow({
            content: "Content String"
          });
          for (var i = 0; i < _locations.length; i++) {
            var _new_marker = _this._createMarker(_map, _locations[i], _infowindow);

            _bounds.extend(_new_marker._position);
          }
          _map.fitBounds(_bounds);

        },

Когда я 'консоль. LOG (_locations);»до цикла я получаю все адреса, но после цикла я больше ничего не получаю.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 06 ноября 2019

попробуйте использовать правильный объект LatLng

   my_location  = new google.maps.LatLng(_locations[i].latitude, _locations[i].longitude) ;
   var _new_marker = _this._createMarker(_map, _my_location, _infowindow);
...