Мой сайт использует Google Map V3 для сохранения маркера в базе данных. Когда добавляется новый маркер, он открывает информационное окно с формой для сохранения в БД PHP. В этой форме есть поле «Выбрать» с разными категориями. когда карта отображается, я хочу, чтобы у каждого маркера был другой значок, в зависимости от категории, в которой он был сохранен. Пока я могу загрузить карту и отображать маркеры, но с теми же значками. Я добавил немного кода из другого проекта, чтобы пройти через каждую категорию, но не совсем уверен, как заставить его работать здесь:API Карт Google - отображение маркеров с разными значками
function create_marker(MapPos, eName, eDesc, eCateg, eDate, InfoOpenDefault, DragAble, Removable, iconPath)
{
//erase all existing markers
for (var i in event_markers)
{
event_markers[i].setMap(null);
}
//loop through each data row
$.each(data, function (i, MapPos) {
// Display the Icon by category
if(eCateg == 'meeting')
{
iconPath = 'static/assets/meeting_marker1.png';
}
else if(eCateg == 'clean')
{
iconPath = 'static/assets/clean_marker2.png';
}
else if(eCateg == 'priority')
{
iconPath = 'static/assets/alert_marker.png';
}
var marker = new google.maps.Marker({
position: MapPos,
map: map,
icon: iconPath,
title: eName
});
В настоящее время, он не показывать ничего, и я не уверен, что должен идти в «данные» здесь:
$.each(data, function (i, MapPos) {
существующие сохраненные маркеры загружаются так:
$.get("event_data.php", function (data) {
$(data).find("marker").each(function() {
var name = $(this).attr('name');
var description = '<p>'+ $(this).attr('description') +'</p>';
var category = $(this).attr('category');
var edate = $(this).attr('edate');
var point = new google.maps.LatLng(parseFloat($(this).attr('lat')),parseFloat($(this).attr('lon')));
create_marker(point, name, description, category, edate, false, false, false, "static/assets/new_event_marker.png");
});
});