Проблема при использовании loadJSON для загрузки маркеров Google Maps - PullRequest
0 голосов
/ 13 ноября 2018

Я использую Google Maps Пример сложных маркеров для размещения маркеров в некоторых местах из запроса Json.Но я получил это сообщение:

Необработанное обещание Отклонение: Ошибка типа: undefined не является объектом (оценивается «beach.length»)

Мне не понятно, почемуJSON не загружается.Я новичок в Javascript / JQuery, поэтому мне нужна помощь.

Первоначально переменная beach подается внутри initMap ():

var beaches = [
    ['Bondi Beach', -33.890542, 151.274856, 4],
    ['Coogee Beach', -33.923036, 151.259052, 5],
    ['Cronulla Beach', -34.028249, 151.157507, 3],
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
    ['Maroubra Beach', -33.950198, 151.259302, 1]
  ];

Я изменяю наполучить эти данные с помощью вызова loadJSON вне функции iniMap ().

  var beaches;

  function setup() {
    loadJSON("getData.php", gotData, 'jsonp');
  }

  function gotData(data) {
    beaches = data;
  }

Как вы можете видеть, я использовал "jsonp" по соображениям безопасности.Я пытаюсь очистить его, но проблема продолжается.

Чтобы представить данные, этот вызов выполнен.Проблема возникает в "beach.lenght":

 for (var i = 0; i < beaches.length; i++) {
      var beach = beaches[i];
      var marker = new google.maps.Marker({
        position: {lat: beach[1], lng: beach[2]},
        map: map,
        shape: shape,
        title: beach[0],
        zIndex: beach[3]
      });
    }

Буду благодарен за любую помощь ...

1 Ответ

0 голосов
/ 13 ноября 2018

EDITED

Вы должны использовать формат JSON для переменной beachs . читать это

конвертировать пляжи в это:

var beaches = 
    [{
      "title" : "Bondi Beach",
      "lat" : -33.890542,
      "lng" : 151.274856,
      "zindex" : 4
    },...]

также: Вы должны использовать google.maps.LatLng объект для значения позиция индекс в маркер объект

var pos = new google.maps.LatLng(beach.lat, beach.lng);
var marker = new google.maps.Marker({
    position : pos ,
    map: map,
    shape: shape,
    title: beach.title,
    zIndex: beach.zindex
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...