2012-12-14 70 views
0

早上好,谷歌地圖信息窗口犯規出現了

我的一個前同事創造了一個應用程序,你可以通過郵政編碼搜索,然後放置標記在地圖上(谷歌地圖)5-40半徑公里。

這些位置是商店在距離您要查找的郵政編碼40公里範圍內的商店。 該函數本身仍然只工作,信息窗口的信息不再工作了。

我有幾個網站運行這個應用程序,但對infowindow不工作的所有網站了。難道谷歌本身已經在API中做了調整,我還需要在某個地方調整某些東西?

這是我的同事已經把並沒有什麼改變,但它不工作了代碼...這裏有人知道這個問題的任何東西,因爲我無法弄清楚自己..

<script type="text/javascript"> 
         var geocoder; 
         var map; 
         function initialize() { 
          geocoder = new google.maps.Geocoder(); 
          var myOptions = { 
           zoom: <?php 
           if(is_array($postcodevelden) && count($postcodevelden) > 0 && !empty($_POST['address'])) 
           { 
            switch($radius) 
            { 
             case "5": 
              echo "12"; 
              break; 
             case "10": 
              echo "11"; 
              break; 
             case "15": 
             case "20": 
              echo "10"; 
              break; 
             case "30": 
             case "40": 
              echo "9"; 
              break; 
            } 
           } 
           else 
           { 
            echo "7"; 
           } 
           ?>, 
           center: new google.maps.LatLng(<?php if(is_array($postcodevelden) && count($postcodevelden) > 0) { echo $lat.", ".$lon; } else { echo "52.2008737173322, 5.25146484375"; } ?>), 
           mapTypeId: google.maps.MapTypeId.ROADMAP 
          } 
          map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

<?php 
     if(is_array($adressen) AND count($adressen) > 0) 
     { 
      foreach($adressen as $adres) 
      { 
       $afstand = round((6371 * acos(sin(deg2rad($lat)) * sin(deg2rad($adres->locatie_lat)) + cos(deg2rad($lat)) * cos(deg2rad($adres->locatie_lat)) * cos(deg2rad($adres->locatie_lon) - (deg2rad($lon))))), 2); 
?> 
          addMarker(<?php echo $adres->locatie_lat.", ".$adres->locatie_lon.", '".$adres->locatie_naam."', '".$adres->locatie_straat."', '".$adres->locatie_postcode."', '".$adres->locatie_plaats."', '".$adres->locatie_telefoon."', '".$afstand."'"; ?>); 
<?php 
      } 
     } 
?> 
         } 

         var infowindow = new google.maps.InfoWindow(); 

         function addMarker(lat, lon, naam, straat, postcode, plaats, telefoon, afstand) 
         { 
          var marker = new google.maps.Marker({ 
           position: new google.maps.LatLng(lat, lon), 
           map: map, 
           icon: "images/pincard/wheel-icon.png", 
           title: naam 
          }); 

          google.maps.event.addListener(marker, 'mouseover', function() { 
           var contentString = '<div>'+ 
           '<b style="border-bottom: 1px solid #000000;">' + naam + '</b><br/>'+ 
           'Afstand (hemelsbreed): ' + afstand + ' km<br/>' + 
           straat + '<br/>' + 
           postcode + ' ' + plaats + '<br/>'; 
           if(telefoon != "") 
           { 
            contentString = contentString + 'Telefoonnr: ' + telefoon; 
           } 
           contentString = contentString + '</div>'; 
           infowindow.content = contentString; 
           infowindow.open(map, marker); 
          }); 

          google.maps.event.addListener(marker, 'mouseout', function(){ 
           infowindow.close(map); 
          }); 
         } 

         google.maps.event.addDomListener(window, 'load', initialize); 
        </script> 

我調用API這樣的:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

如果任何人有任何想法,爲什麼信息窗口中的所有網站停止工作,那麼我很願意聽,因爲我不明白爲什麼它不再起作用。

預先感謝任何努力

親切的問候,

的Joep

PS:這是一個例子網站:

intertyre ... PHP LANG = NL & p = 4

+0

http://www.intertyre.nl/index.php?lang=nl&p=4 這是正確的鏈接 – user1511766

回答

3

我被同樣的問題咬了,並去Google搜索答案。

找到了我的問題的答案 - 它看起來像谷歌可能已經收緊它的infoWindow API有點迫使你通過一個適當的Set()函數設置 .content成員。

嘗試

infowindow.setContent(contentString);

更換線

infowindow.content = contentString;

,看看有沒有什麼幫助。我用我的代碼做了這件事,並修復了破損。

+0

你做了我的一天!我正在尋找天,找不到問題!非常感謝!:) – user1511766