我正在为一家小型房地产代理商工作。 我在网站上有一个谷歌地图,显示所有可用的属性,通过XML调用从Mysqli数据库中提取属性数据。这一切都有效。 客户现在想要添加办公室的位置。这些不在数据库中,因此需要手动添加。 是否有可能有两个不同的'var marker = new google.maps.Marker({'调用?如果是这样,我找不到将它放在循环之外的位置,它会拉动每个属性数据。 工作代码是:
<script>
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(40.300000, 15.800000),
zoom: 9
});
var infoWindow = new google.maps.InfoWindow;
downloadUrl('mapXMLcall.php', function(data) {
var xml = data.responseXML;
var property = xml.documentElement.getElementsByTagName('property');
Array.prototype.forEach.call(property, function(propertyElem) {
var id = propertyElem.getAttribute('Idnumber');
var name = propertyElem.getAttribute('Name');
var price = propertyElem.getAttribute('Price');
if (price == '999999') {var price = "POA"};
var point = new google.maps.LatLng(
parseFloat(propertyElem.getAttribute('Lat')),
parseFloat(propertyElem.getAttribute('Long')));
var infowincontent = document.createElement('div');
var strong = document.createElement('strong');
strong.textContent = name
infowincontent.appendChild(strong);
infowincontent.appendChild(document.createElement('br'));
var text = document.createElement('text');
text.textContent = ' €' + price;
infowincontent.appendChild(text);
var marker = new google.maps.Marker({
map: map,
position: point,
url: 'dbtest2.php?id=' + id
});
marker.addListener('mouseover', function() {
infoWindow.setContent(infowincontent);
infoWindow.open(map, marker);
});
google.maps.event.addListener(marker, 'click', function() {
window.open("dbtest2.php?id=" + id, "_blank", "toolbar=no,scrollbars=yes,status=no, resizable=yes,top=100,left=100,width=920,height=900")
});
});
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
</script>
感谢任何建议。
答案 0 :(得分:0)
初始化initMap
变量后,可以在map
函数中添加任何“固定”标记(可以在调用downloadUrl
之前或之后)。
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(40.300000, 15.800000),
zoom: 9
});
var infoWindow = new google.maps.InfoWindow;
// add a fixed marker
var anotherMarker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(40.300000, 15.800000),
});
downloadUrl('mapXMLcall.php', function(data) {
// ...
}
}