谷歌地图api动态获取lat和lng

时间:2016-04-28 22:31:35

标签: javascript jquery google-maps google-maps-api-3

当我运行我的代码时,地图不会显示。我正在使用我的localhost。我想把lat和lng放到输入端。然后,当我更改lat和lng时,输入将动态变化。我怎么解决这个问题?

<!DOCTYPE html>
<html>
<head>
<script src="http://maps.google.com/maps/api/js?sensor=false&.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
<div id="googleMap" style="width:500px;height:500px;"></div>
Lat: <input type="text" id="lat"><br>
Lng: <input type="text" id="lng">
<script type="text/javascript">
function initialize() {
    var myLatlng = new google.maps.LatLng(41,28);
    var myOptions = {
      zoom: 15, 
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("googleMap"), myOptions);
    addMarker(myLatlng, 'Default Marker', map);
    map.addListener('click',function(event) {
        addMarker(event.latLng, 'Click Generated Marker', map);
    );
}}
function addMarker(latlng,title,map) {
    var marker = new google.maps.Marker({
            position: latlng,
            map: map,
            title: title,
            draggable:true
    });
    marker.addListener('drag',function(event) {
        $('#lat').val() = event.latLng.lat();
        $('#lng').val() = event.latLng.lng();
    });
    marker.addListener('dragend',function(event) {
        $('#lat').val() = event.latLng.lat();
        $('#lng').val() = event.latLng.lng();
    });}
</script>
</body></html>

2 个答案:

答案 0 :(得分:4)

  

你的代码中有一些错误..而你没有调用该函数   initialize()。试试这个更新的代码

<!DOCTYPE html>
<html>
<head>
<script src="http://maps.google.com/maps/api/js?sensor=false&.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
<div id="googleMap" style="width:500px;height:500px;"></div>
Lat: <input type="text" id="lat"><br>
Lng: <input type="text" id="lng">
<script type="text/javascript">
function initialize() {
    var myLatlng = new google.maps.LatLng(41,28);
    var myOptions = {
      zoom: 15, 
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("googleMap"), myOptions);
    addMarker(myLatlng, 'Default Marker', map);
    map.addListener('click',function(event) {
        addMarker(event.latLng, 'Click Generated Marker', map);
    });
}
function addMarker(latlng,title,map) {
    var marker = new google.maps.Marker({
            position: latlng,
            map: map,
            title: title,
            draggable:true
    });
    marker.addListener('drag',function(event) {
         $('#lat').val(event.latLng.lat())  ;
        $('#lng').val(event.latLng.lng())  ;
    });
    marker.addListener('dragend',function(event) {
        $('#lat').val(event.latLng.lat())  ;
        $('#lng').val(event.latLng.lng())  ;
    });
}
initialize();
</script>
</body></html>

答案 1 :(得分:2)

这里我可以保存选定的坐标。我可以帮助别人。

['middleware' => 'web']