2011-07-09 59 views
0

我試圖從數據庫中獲取不同的標記呈現到前端。 std標記是一切都很好,現在是時候添加紅色,綠色標記等。在我的頭上敲這個鍵盤太久了。 (是的,我是新來的本 - 對不起)谷歌地圖 - 從數據庫多標記 - phpsqlajax - Java

在JavaScript控制檯我得到一個錯誤

「未捕獲的ReferenceError:GPoint沒有定義」 上 - VAR customIcons = {

這裏是我的代碼 - (在此先感謝!)

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

VAR customIcons = {

"Boat Ramp": { 
       icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png', 
       shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png', 
       iconAnchor: new GPoint(0,0), 
       infoWindowAnchor: new GPoint(0,0) 
     }, 
    "Landbased - Saltwater": { 
         icon: 'http://labs.google.com/ridefinder/images/mm_20_green.png', 
       shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png', 
       iconAnchor: new GPoint(0,0), 
       infoWindowAnchor: new GPoint(0,0) 
    }, 


    "Boat - Salt Water": { 
    image: 'http://labs.google.com/ridefinder/images/mm_20_orange.png', 
       shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png', 
       iconAnchor: new GPoint(0,0), 
       infoWindowAnchor: new GPoint(0,0) 
    } 
}; 

function load() { 
    var map = new google.maps.Map(document.getElementById("map"), { 
    center: new google.maps.LatLng(-41.284882, 173.268570), 
    zoom: 5, 
    mapTypeId: 'roadmap' 
    }); 
    var infoWindow = new google.maps.InfoWindow; 


    downloadUrl("123.php", function(data) { 
    var xml = data.responseXML; 
    var Sheet1 = xml.documentElement.getElementsByTagName("marker"); 
    for (var i = 0; i < Sheet1.length; i++) { 
     var Type = Sheet1[i].getAttribute("Type"); 
     var Description = Sheet1[i].getAttribute("Description"); 
     var Comments = Sheet1[i].getAttribute("Comments"); 
     var Lat = Sheet1[i].getAttribute("Lat"); 
     var Lng = Sheet1[i].getAttribute("Lng"); 
     var point = new google.maps.LatLng(
      parseFloat(Sheet1[i].getAttribute("Lat")), 
      parseFloat(Sheet1[i].getAttribute("Lng"))); 
     var html = "<b>" + Type + "</b> <br/>" + Description + "<br/>" + Comments +"<b><br/>Latitude " + Lat + "<b><br/>Longitude " + Lng; 


     var icon = customIcons[Type] || {}; 
     var marker = new google.maps.Marker({ 
     map: map, 
     position: point, 
     icon: icon.icon, 
     shadow: icon.shadow 
     }); 
     bindInfoWindow(marker, map, infoWindow, html); 
    } 
    }); 
} 

function drop() { for (var i =0; i < markerArray.length; i++) {  setTimeout(function() {  addMarkerMethod();  }, i * 200); } } 

function bindInfoWindow(marker, map, infoWindow, html) { 
    google.maps.event.addListener(marker, 'click', function() { 
    infoWindow.setContent(html); 
    infoWindow.open(map, marker); 
    }); 
} 

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() {} 

//]]> 

回答

0

問題是,當您引用的是Google Maps API版本3.5.9時,您編寫的代碼是針對版本2的。版本3中沒有GPoint類,這就是爲什麼您會收到錯誤。

我建議您使用v3中的google.maps.Marker類來代替。有關更多詳情,請參閱the documentation

+0

嘿,非常感謝!我拿出了Gpoint,它的工作原理! ! !乾杯 – Dan