2014-10-09 61 views
0

我已經使用API​​ v3集成了Google地圖,並且所有內容都正常工作,但是我收到了一些控制檯錯誤,並且想要查看是否有人可以指出原因。 (匿名函數)VM262:13T.trigger main.js:15N.Hc VM261:137(匿名函數)main.js(無名函數)main_js :13T.trigger main.js:15N.Xl VM261:122(匿名函數)Google地圖API js錯誤

在Firefox上,我得到: 類型錯誤:s爲null

基於閱讀其他答案它會出現的DOM不是招」 t完全加載時,地圖初始化,但這似乎並不是這樣,因爲我在加載運行它。我的代碼如下,如果任何人都可以指出我爲什麼這些錯誤可能發生的方向(一切似乎工作正常!),那將不勝感激(fyi有一些PHP代碼在這裏用於插入db變量到JS):

var map; 
var infos = []; 
var ib = new InfoBox(); 
var infowindow; 

function initialize() { 
    var contentString = ''; 
    infowindow = new google.maps.InfoWindow({ 
     content: contentString 
    }); 
    map = new google.maps.Map(document.getElementById('map-canvas')); 
    var address = 'Netherlands'; 
    var geocoder = new google.maps.Geocoder(); 
     geocoder.geocode({ 'address': address}, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
      map.setCenter(results[0].geometry.location); 
      map.fitBounds(results[0].geometry.viewport); 
      } 
     }); 
    var markers = [ 
    [1, '52.350785','5.264702', 2, 'Almere', '01345'],[1, '52.992753','6.564228', 2, 'Assen', ''] 
    ]; 
    for (var i = 0; i < markers.length; i++) { 
     setMarkers(map, markers[i]); 
    } 
} 

function setMarkers(map, beach) { 
    var image = new google.maps.MarkerImage('/img/marker.png', 
     // This marker is 20 pixels wide by 32 pixels tall. 
     new google.maps.Size(21, 34), 
     // The origin for this image is 0,0. 
     new google.maps.Point(0,0), 
     // The anchor for this image is the base of the flagpole at 0,32. 
     new google.maps.Point(5, 34)); 

    var html = '<div class="phoney">'+beach[4]+'<br>'+beach[5]+'<\/div>'; 
    var myLatLng = new google.maps.LatLng(beach[1], beach[2]); 
    var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    icon: image, 
    content:html, 
    title: beach[4], 
    zIndex: beach[3] 
    }); 

    var boxText = document.createElement("div"); 
    boxText.style.cssText = "border: 2px solid #4a5461; margin-top: 8px;background: #ffffff; padding: 5px;font-family: \'ff-din-web-n6\',\'ff-din-web\',sans-serif; font-size: 17px; color: #4a5461;"; 
    boxText.innerHTML = beach[4] + '<br>' + beach[5]; 

    var myOptions = { 
    content:boxText, 
    disableAutoPan: false, 
    maxWidth: 0, 
    pixelOffset: new google.maps.Size(-140, 0), 
    zIndex: null, 
    boxStyle: { 
     width: "200px" 
    }, 
    closeBoxMargin: "13px 5px 2px 2px", 
    closeBoxURL: "/img/close.png", 
    infoBoxClearance: new google.maps.Size(1, 1), 
    isHidden: false, 
    pane: "floatPane", 
    enableEventPropagation: false 
    }; 

    google.maps.event.addListener(marker, "click", function (e) { 
    ib.setOptions(myOptions); 
    ib.open(map, marker); 
    }); 
} 

$(document).ready(function() { 
    google.maps.event.addDomListener(window, 'load', initialize); 
}); 

非常感謝,

戴夫

+0

請發佈一個[最小,完整,測試和可讀的示例](http://stackoverflow.com/help/mcve)(我們不知道數據庫中的數據是什麼;或者您的HTML/CSS) – geocodezip 2014-10-09 14:11:30

+0

我已經刪除了PHP並硬編碼了這些變量。對於HTML,只有一個ID = map-canvas的div。非常感謝 – deshg 2014-10-09 14:28:56

+1

我沒有看到任何javascript錯誤([fiddle](http://jsfiddle.net/7mak5unj/)),您是否確認它們發生在您發佈的示例中?不是問題,但google.maps.MarkerImage已被棄用,取而代之的是google.maps.Icon匿名對象。 – geocodezip 2014-10-09 14:49:14

回答

0

戴夫,

確保緯度,經度是十進制值,例如:

var center = {lat:-25.363,lng:131.044};