2013-01-10 129 views
0

正如您在下面的代碼中看到的,我從MySQL數據庫中獲取數據,但是當我想要使用提取的「位置」設置「位置」谷歌地圖上的標記。在JavaScript中設置變量的值

<head> 
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=xxxxxxxxxxxxxxxxxxxxx&sensor=true"></script> 
<script> 
    $.getJSON('http://www.wawhost.com/appProject/fetchmarker.php?callback=?', function(data) { 
    for (var i = 0; i < data.length; i++) { 
     localStorage.loc = data[i].location; 
    } 
    }); 
</script> 
<script> 
    function initialize() { 
    var myLatlng = new google.maps.LatLng(-25.363882, 131.044922); 
    var mapOptions = { 
     zoom: 4, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); 

    var marker = new google.maps.Marker({ 
     position: 'new google.maps.LatLng(' + localStorage.loc + ')', 
     map: map, 
     title: 'Hello World!' 
    }); 
    } 
</script> 
</head> 

<body onload="initialize()"> 
<div id="map_canvas"></div> 
</body> 

謝謝!

+0

調用'初始化()'你的JSON加載之後。 – Blender

回答

1

在頁面加載完成後發出請求,並從AJAX成功回調調用initialize函數。

$(function() { 
    $.getJSON('http://www.wawhost.com/appProject/fetchmarker.php?callback=?', function(data) { 
    for (var i = 0; i < data.length; i++) { 
     localStorage.loc = data[i].location; 
    } 
    initialize(); 
    }); 
}); 

此外,這條線看起來有點粗略。 position應該是一個新的google.maps.LatLng

position: 'new google.maps.LatLng(' + localStorage.loc + ')'. 

LatLng需要一個經緯度參數來構造該對象。你從請求中存儲的是字符串,用逗號分隔經緯度和長整型值。

// First split the string into lat and long. 
var pos = localStorage.loc.split(","); 
// Parse the strings into floats. 
var lat = parseFloat(pos[0]); 
var lng = parseFloat(pos[1]);  
// Create a new marker with the values from the request. 
var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(lat, lng), 
    map: map, 
    title: 'Hello World!' 
}); 

試試吧here.

+0

它不起作用 - http://jsfiddle.net/BWfxw/3/ – alesko007

+0

它應該看起來像這樣 - > position:new google.maps.LatLng(-25.363882,131.044922) – alesko007

+0

@ alesko007 - 如果您知道它應該是什麼樣子,爲什麼你不修復它。我做了修改,並在這裏工作。查看編輯和小提琴鏈接。 – Aesthete