2012-07-05 80 views
1

我使用Google地圖API v3擁有Google地圖。 我手頭上有一個谷歌地圖,用戶可以點擊並放置一個標記和lat的值,在上面填上兩個文本框。Google地圖上的文本框值更改更新標記

這部分工作正常,下面的腳本。 但我現在想要的文本框中填充了經緯度& lon如果用戶更改文本框標記中lat或lon的值,則需要相應地更改。

var map = null; 
function initialize() { 
var myLatlng = new google.maps.LatLng(25.263327,55.329895); 
    var myOptions = { 
     zoom: 10, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

var marker; 

function placeMarker(location) { 
    if (marker) { 
     marker.setPosition(location); 
    } else { 
     marker = new google.maps.Marker({ 
     position: location, 
     map: map 
     }); 
     } 
    } 

google.maps.event.addListener(map, 'click', function(event) { 
    placeMarker(event.latLng); 
    document.getElementById("latFld").value = event.latLng.lat(); 
    document.getElementById("lngFld").value = event.latLng.lng(); 
}); 


    } 

$(document).ready(function() { 

$("#accordion").bind('accordionchange', function(event, ui) { 
    if (ui.newContent.attr('id') == 'tabThree' && !map) 
    { 
     map = initialize(); 
    } 
    }); 
    }); 

回答

0

像這樣的東西可能會奏效:

function updatePosition(){ 
    var lat = parseFloat(document.getElementById("latFld").value); 
    var lon = parseFloat(document.getElementById("lngFld").value); 
    if (lat && lon) { 
     var newPosition = new google.maps.LatLng(lat,lon); 
     placeMarker(newPosition); 
    } 
} 

...在你的HTML

<input id ='latFld' onkeyup='updatePosition()'> 
<input id ='latFld' onkeyup='updatePosition()'> 

您可能需要使用電平變化的代替的onkeyup使它不那麼多動。 :-)

+0

我試圖添加你的函數,但是當我把updatePosition()放在主要的initialize()中時,它會給出一個錯誤「updatePosition is not defined」。如果我放在initialize()之外,它給了我一個錯誤「placeMarker沒有定義」。 – 2012-07-08 07:29:00