Целевая позиция массива, чтобы добавить изображение значка в функцию маркера карты Google с массивом иконок? - PullRequest
0 голосов
/ 10 апреля 2020

Вот как Google рекомендует добавлять на карту множество маркеров с уникальными значками для каждого элемента:

 var icons = {
          parking: {
            icon: iconBase + 'parking_lot_maps.png'
          }
        };
var features = [
          {
            position: new google.maps.LatLng(-33.91721, 151.22630),
            type: 'info'
          }
];
        for (var i = 0; i < features.length; i++) {
          var marker = new google.maps.Marker({
            position: features[i].position,
            icon: icons[features[i].type].icon,
            map: map
          });
        };
      }

Ради повторного выполнения моего кода. Я пытаюсь реализовать это по-своему с моим текущим массивом PHP. Это выглядит так:
["TITLE", "LAT", "LNG", "Z-INDEX", "CATEGORY"]
При нацеливании на позиции в моем массиве, чтобы установить данные для создания маркера, это выглядит следующим образом:

function setMarkers(markers) {
   deleteMarkers(); 
var iconBase =
            'https://developers.google.com/maps/documentation/javascript/examples/full/images/';
var icons = {
         Parking: {
            icon: iconBase + 'parking_lot_maps.png'
          }
        };
    if (markers){
  for (var i = 0; i < markers.length; i++) {
    var w = markers[i];
    var marker = new google.maps.Marker({
      position: {lat: parseFloat(w[1]), lng: parseFloat(w[2])},
      map: map,
      icon: icons[w[4]].icon,
      title: w[0],
      zIndex: parseFloat(w[3])
    });
  }   
 }
}

Все работает идеально, пока я не доберусь до в строке ICON: я не могу указать на часть категории в массиве, и она должна найти icon: внутри значков var. Я либо получаю сообщение об ошибке «не могу прочитать свойство 4 неопределенного», либо говорится, что функция не определена. Любые идеи о том, что я могу сделать без перекодирования? спасибо !!

1 Ответ

1 голос
/ 10 апреля 2020

Должно работать отлично. Проверка на несоответствие свойств объекта значков и значения категории рыночного объекта

 var icons = {
         Parking: {
            icon: 'parking_lot_maps.png'
          }
        };
let w=["TITLE", "LAT", "LNG", "Z-INDEX", "Parking"];
console.log(w[4]);
console.log(icons[w[4]]);
console.log(icons[w[4]].icon)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...