2017-09-02 11 views
-1

私は小さな不動産会社のウェブサイトで働いています。 私は、利用可能なすべてのプロパティを表示しているサイト上のGoogleマップを持っています。プロパティーデータは、XML呼び出しを介してMysqliデータベースから引き出されています。これがすべて機能しています。 クライアントは、オフィスの所在地を追加したいと考えています。これらはデータベースにないため、手動で追加する必要があります。 2つの異なる 'var marker = new google.maps.Marker({'呼び出し?)の場合、それぞれのプロパティデータを取得するループの外側に配置する場所を見つけることができません。 作業コードは次のとおりです。 :Googlemapで2種類のマーカーのマーカJS

<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

あなたはmap変数は(あなたがdownloadUrlを呼び出す前または後のいずれでもよい)を初期化した後、ちょうどあなたのinitMap機能で任意の「固定」マーカーを追加

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) { 
    // ... 
    } 
} 
関連する問題