2012-06-17 244 views
0

我正在嘗試爲我的Google地圖添加標記,但無法顯示它。添加Google地圖標記

我打電話給函數createMarkers(x, y),並從aspx頁面傳入兩個字符串。

這裏的createMarkers功能:

function createMarkers(x, y) { 

var latlng = new google.maps.LatLng(x, y); 
console.log(latlng); 

var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title: "User location" 
}); 

}; 

標記不會出現在地圖上,並沒有錯誤打印到控制檯。

我記錄我的變量latlng控制檯檢查,這就是它顯示:

O 
ab: 51.486091 
cb: -0.05983800000001338 
__proto__: O 

我已經通過谷歌的文檔看着標記here和我有代碼看起來不錯足以工作。

最後一件事,我也嘗試將座標直接添加到latlng變量中,而不是使用我的參數x &。這也沒有用。

我想我錯過了一些非常明顯的東西。一如既往的幫助將不勝感激!

JA

+0

確保「地圖」被宣佈在全球範圍內,否則該功能可能無法訪問它。如果不是這樣,請發佈一個代碼來演示問題,以便我們可以對其進行調試。 –

+0

設置小提琴可能有點棘手,因爲我在頁面後面使用asp.net母版頁和代碼。我絕對在全局層次上聲明map,但我也嘗試刪除它並在不起作用的函數中在本地聲明它。 – Jim

+0

不,在本地聲明它不會,因爲它必須引用您已初始化的地圖。人們的另一個常見問題是他們設置了一個全局變量映射,然後在初始化函數中聲明一個局部變量var map =。我不認爲我們現在可以在沒有看到您的代碼的情況下爲您提供更多幫助。我會使用你的asp.net代碼渲染地圖,然後複製並粘貼到jsFiddle的JavaScript。只需要成爲複製問題的子集。 –

回答

0

這是我用來渲染地圖,並添加標記功能:

function renderMap(mapContainer) { 
    var mapOptions = { 
      zoom: 4, 
      center: new google.maps.LatLng(43.645004, -79.380707), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
    window.map = new google.maps.Map(mapContainer, mapOptions); 
} 

function addMarkerToMap(lat, long, titleText) { 
    new google.maps.Marker({ 
     title: titleText, 
     map: map, 
     position: new google.maps.LatLng(lat, long) 
    }); 
} 
+0

感謝您的幫助。我試着用你的'addMarkerToMap'函數,但得到完全相同的結果。 – Jim

+0

也許嘗試在Maps API文檔(https://developers.google.com/maps/documentation/javascript/overlays#AddingOverlays)中概述的原始代碼中添加'marker.setMap(map);'。 – nbsp

+0

我原來是這樣的,它仍然沒有工作!儘管乾杯! – Jim

0

的功能,因爲它應該工作。

假設地圖變量是可用的,並指向一個地圖對象:

添加一個標記,以在地圖將不設置地圖的視口以包含所述標記,可能不會是標記存在,但在視口之外?

嘗試增加這的createMarkers()末:

map.setCenter(latlng); 
+0

我不認爲這是問題,我大概知道標記應該在哪裏,它只是沒有出現。稍後我會試一試,但請確定!謝謝你的幫助。 – Jim

相關問題