Как назвать типы значков маркеров карты Google двумя словами? - PullRequest
0 голосов
/ 21 марта 2019

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

Ниже приведен фрагмент кода, который я использую для установки переменной 'markerIcon' и имени 'type' ( Административный ):

ДО

var markerIcon = {
        Administrative: {
        url: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
        // scaledSize: new google.maps.Size(80, 80),
        // origin: new google.maps.Point(0, 0),
        // anchor: new google.maps.Point(32,65),
        // labelOrigin: new google.maps.Point(40,33)
        }
      };

Хорошо, вот фрагмент кода, который не работает с именем типа var Административно-канцелярский :

ПОСЛЕ

var markerIcon = {
            Administrative and Clerical: {
            url: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
            // scaledSize: new google.maps.Size(80, 80),
            // origin: new google.maps.Point(0, 0),
            // anchor: new google.maps.Point(32,65),
            // labelOrigin: new google.maps.Point(40,33)
            }
          };

Это проблема, с которой я сталкиваюсь.Использование более одного слова с пробелами.

Ниже приведена функция, которая создает маркер:

function createMarker(latlng, name, company, address, type, jobdesc) {
  var jobButton = "<a class='btn btn-success btn-sm mt-2' role='button' href='/public/job_details_demo.php?" + "title=" + name + "'" + "target='_blank'>View Job" + "</a>";
  var html = "<h5 class='mb-0'>" + name + "</h5>" + "<h6 class='mb-0'>" + company + "</h6>" + "<p><b>" + address + "</b></p>" + "<b>Job Details:</b></br>" + jobdesc + "</p>" + jobButton;
  var icon = markerIcon[type] || {};
  var marker = new google.maps.Marker({
     map: map,
     position: latlng,
     icon: icon.url
  });
  google.maps.event.addListener(marker, 'click', function () {
  infoWindow.setContent(html);
  infoWindow.open(map, marker);
  });
  markers.push(marker);
}

Чтобы отобразить значки, я запрашиваю базу данных, чтобы получить тип AS 'jobsector_name', используя SQL.Это работает отлично, и появляются значки маркеров.

Однако мне нужно использовать более одного слова для имен секторов работ, например, «Административный и канцелярский».Когда я изменяю тип на это имя в базе данных и имя значка маркера, маркеры не отображаются, и в консоли Chrome не отображаются ошибки.

У меня вопрос: как решить проблему?использования двух или более слов для имен типов значков маркеров?

Я пробовал специальные символы, такие как% 20, но неудивительно, что код ненавидит любые специальные символы.Я также пытался ссылаться на числа, но они не отображаются, и я пытался объединить две переменные, но не знаю, как ссылаться на переменную внутри другой переменной для этого типа операции.

1 Ответ

0 голосов
/ 21 марта 2019

РЕШИТЬ: Я добавил символы «_» между каждым словом (как в типе MarkerIcon, так и в значениях столбца базы данных), а затем использовал команду PHP «str_replace» при отображении имени на странице.

$jobsector = str_replace("_", " ", $row['jobsector_name']);

Руководство по PHP - str_replace - Заменить все вхождения строки поиска строкой замены

...