2017-07-06 192 views
0

從下面的JavaScript函數中,我可以得到一個javascript變量,標記爲,當用戶點擊地圖上的一個位置時,座標爲座標。使用Google地圖標記座標作爲表單輸入

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); 
}); 

問題 如何能夠將這些座標可以用作表單輸入?

<form method="POST" action="/authors" target="" enctype="multipart/form-data"> 
    ... 
</form> 
+0

如果沒有關於上下文的更多信息,很難回答您。您可以想象在您的標記上循環,檢索其位置屬性,並將這些屬性作爲值輸入到表單中。那是你想做的事情嗎? –

回答

0

所有你需要做的就是採取location變量並將其分配給你這樣的形式輸入:

首先,添加一個隱藏的輸入字段

<form method="POST" action="/authors" target="" enctype="multipart/form-data"> 
    <input id="location" name="location" type="hidden" value="" /> 
</form> 

第二,確保了位置變量被添加到您的輸入

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

    $("#location").val(location); 

} 
google.maps.event.addListener(map, 'click', function(event) { 
    placeMarker(event.latLng); 
}); 

現在,無論何時placeMarker(location)被調用它將更新輸入的id爲「location」,其值爲location的輸出。

+1

棒極了!一個很好的簡單解決這可能是一個微不足道的問題,但我在這裏找不到答案,而且我不熟練使用Javascript。再次感謝! –

+0

我改變了你的解決方案,以便通過使用位置變量的屬性分別存儲座標:\t \t \t \t'$(「#latitude」).val(location.lat());' '$(「#longitude」 ).val(location.lng());' –

+0

這也是一個好主意! – Chris

相關問題