Мне трудно понять, как отобразить два разных набора маркеров на моей карте. У меня есть две разные базы данных, в каждой из которых есть таблица, из которой мне нужно получить данные для отображения. Для одной таблицы форматом является id, улица, город, штат, zip_code, type и lat / lng, как вы можете видеть ниже. Я могу отобразить этот список свойств нормально, но когда я пытаюсь добавить другой набор из второй таблицы, он не работает. Я вставил свой исходный код, который работает на одну таблицу ниже:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>propertylocations</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=mykey"
type="text/javascript"></script>
<script type="text/javascript">
var iconFlag = new GIcon();
iconFlag.image = 'images/redflag.png';
iconFlag.iconSize = new GSize(12, 20);
iconFlag.iconAnchor = new GPoint(6, 20);
iconFlag.infoWindowAnchor = new GPoint(5, 1);
var iconBlue = new GIcon();
iconBlue.image = 'images/glossy-ball.png';
iconBlue.iconSize = new GSize(12, 20);
iconBlue.iconAnchor = new GPoint(6, 20);
iconBlue.infoWindowAnchor = new GPoint(5, 1);
var iconRed = new GIcon();
iconRed.image = 'images/redbutton.png';
iconRed.iconSize = new GSize(12, 20);
iconRed.iconAnchor = new GPoint(6, 20);
iconRed.infoWindowAnchor = new GPoint(5, 1);
var customIcons = [];
customIcons["rental"] = iconFlag;
customIcons["commercial"] = iconBlue;
customIcons["residential"] = iconRed;
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(33.000000, -78.000000), 11);
// Change this depending on the name of your PHP file
GDownloadUrl("markers4.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var id = markers[i].getAttribute("id");
var street = markers[i].getAttribute("street");
var city = markers[i].getAttribute("city");
var state = markers[i].getAttribute("state");
var zip_code = markers[i].getAttribute("zip_code");
var type = markers[i].getAttribute("type");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(point, id, street, city, state, zip_code, type);
map.addOverlay(marker);
}
});
}
}
function createMarker(point, id, street, city, state, zip_code, type) {
var marker = new GMarker(point, customIcons[type]);
var html = "<b>" + id + "</b> <br/>" + street + "<br/>" + city + "<br/>" + state + "<br/>" + zip_code +"<br/>" + type;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
//]]>
</script>
</head>
<body background="images/bg2.jpg">
<body onload="load()" onunload="GUnload()">
<center><div id="map" style="width: 800px; height: 600px"></div></center>
</body>
</html>
Я попытался сделать следующее, чтобы отобразить данные из второй таблицы, но он изменил значки на значки по умолчанию и одинаково отформатировал поля выноски html - поэтому один из них отображался правильно, а все значки из другой таблицы отображались как "неопределенное".
Все здесь идентично вышеописанному, за исключением того, что я добавил второй GdownloadURL и создал функцию маркера (поэтому я опустил верхний раздел, который можно увидеть выше).
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(33.000000, -78.000000), 8);
// Change this depending on the name of your PHP file
GDownloadUrl("markers4.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var id = markers[i].getAttribute("id");
var street = markers[i].getAttribute("street");
var city = markers[i].getAttribute("city");
var state = markers[i].getAttribute("state");
var zip_code = markers[i].getAttribute("zip_code");
var type = markers[i].getAttribute("type");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(point, id, street, city, state, zip_code, type);
map.addOverlay(marker);
}
});
GDownloadUrl("markers6.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var realtor_phone = markers[i].getAttribute("realtor_phone");
var availability_date = markers[i].getAttribute("availability_date");
var type = markers[i].getAttribute("type");
var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
parseFloat(markers[i].getAttribute("longitude")));
var marker = createMarker(point, realtor_phone, availability_date, type);
map.addOverlay(marker);
}
});
}
}
function createMarker(point, id, street, city, state, zip_code, type) {
var marker = new GMarker(point, customIcons[type]);
var html = "<b>" + id + "</b> <br/>" + street + "<br/>" + city + "<br/>" + state + "<br/>" + zip_code +"<br/>" + type;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
function createMarker(point, realtor_phone, availability_date, type) {
var marker = new GMarker(point, customIcons[type]);
var html = "<b>" + realtor_phone + "</b><br/>" + availability_date;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
//]]>
</script>
</head>
<body background="images/bg2.jpg">
<body onload="load()" onunload="GUnload()">
<center><div id="map" style="width: 800px; height: 600px"></div></center>
</body>
</html>
Я могу изменить какой html-формат пиктограммы, который я вижу, переместив фигурную скобку ниже первого «маркера возврата» и поместив его после второго «маркера возврата» как двойной, но в любом случае у меня возникают проблемы с форматированием. Если у кого-то есть какие-то идеи, я буду очень признателен за них. Я застрял и имею несколько разных типов данных, которые мне нужно загрузить и отобразить на моей карте. Благодарю.