Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中获取google地图的经纬度_Javascript_Google Maps - Fatal编程技术网

如何在javascript中获取google地图的经纬度

如何在javascript中获取google地图的经纬度,javascript,google-maps,Javascript,Google Maps,我正在使用谷歌地图和java脚本。它工作正常。我需要获取当前的经度和纬度,并将其保存到数据库中。诀窍是指针是可拖动的,所以如何获取当前的经度和纬度 function markernew(){ markers = []; //var val=document.getElementById('val2').value=; $("#floating-panel").show(); var latlng = new google.maps.LatLng(-34.397, 150.644);

我正在使用谷歌地图和java脚本。它工作正常。我需要获取当前的经度和纬度,并将其保存到数据库中。诀窍是指针是可拖动的,所以如何获取当前的经度和纬度

function markernew(){


markers = [];
//var val=document.getElementById('val2').value=;
 $("#floating-panel").show();
   var latlng = new google.maps.LatLng(-34.397, 150.644);
      var myOptions = {
        zoom: 1,
        center: latlng,
      mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
      navigationControl: true,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };
      map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);
      if(marker) marker.setMap(null);
      var geocoder;
      var address ="";
  if(!document.getElementById('address_id').value){
 alert('Enter Address');
  }
  else if (!document.getElementById('city_id').value){
 alert('Enter City');
  }
  else if (!document.getElementById('nearby_id').value){
   alert('Enter Country');
  }
  else{
     $("#findplace").show();
    var address="";
   var array = document.getElementById('address_id').value;
   array+=",";

   if(array.match(/,/g).length==1){
  array = array.split(',');
   address += array[0]+" ";
    address += array[1];

   }

   else if(array.match(/,/g).length==2){
    array = array.split(',');
     address += array[0]+" ";
    address += array[1]+" ";
    address += array[2];

   }
   else if(array.match(/,/g).length==3){
    array = array.split(',');
     address += array[0]+" ";
    address += array[1]+" ";
    address += array[2]+" ";
      address += array[3];

   }
    else if(array.match(/,/g).length==4){
     array = array.split(',');
     address += array[0]+" ";
    address += array[1]+" ";
    address += array[2]+" ";
      address += array[3]+" ";
          address += array[4];
   }
   else if(array.match(/,/g).length==5){
     array = array.split(',');
     address += array[0]+" ";
    address += array[1]+" ";
    address += array[2]+" ";
      address += array[3]+" ";
     address += array[4]+" ";
  address += array[5];
   }
   else{
    alert("inside else");
   var address= document.getElementById('address_id').value; 
          }

  // address += document.getElementById('address_id').value + " ";
    address += document.getElementById('city_id').value + " ";
    address += document.getElementById('nearby_id').value;

    geocoder = new google.maps.Geocoder();

    if (geocoder) {
      geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
          map.setCenter(results[0].geometry.location);

            map.setZoom(15);
            var infowindow = new google.maps.InfoWindow(
                { content: '<b>'+address+'</b>',
                  size: new google.maps.Size(150,50)
                });

            google.maps.event.addListener(map, 'click', function(event) {

    if(abc==true){
     placeMarker(event.latLng);
     abc=false;
      }
     });

          } else {
            alert("No results found");
          }
        } else {
          alert("Geocode was not successful for the following reason: " + status);
        }
      });
    }
  }

  }
   function placeMarker(location) {

    var marker = new google.maps.Marker({
        position: location, 
        map: map,
  draggable:true
    });
 markers.push(marker);


  var infowindow = new google.maps.InfoWindow({
    content: 'Latitude: ' + location.lat() + '<br>Longitude: ' + location.lng()
  });
  infowindow.open(map,marker);
}
function setMapOnAll(map) {
  for (var i = 0; i < markers.length; i++) {
    markers[i].setMap(map);
  }
}
function clearMarkers() {
  setMapOnAll(null);
}

function deleteMarkers() {
  clearMarkers();
  abc=true;
  markers = [];
}

首先进入谷歌开发者网站


关于从地址、城市名称获取lat long的所有描述都有

您可以尝试这样的dragend事件

var latlng = new google.maps.LatLng(-34.397, 150.644);
var marker   = new google.maps.Marker({
    position: latlng ,
    map: map,
    draggable: true   
});

google.maps.event.addListener(marker, 'dragend', function(ev){
    alert(m.getPosition()); // Lat lon after drag
});

希望这有帮助

您可以尝试使用navigator.geolocation您有我们可以尝试的repo吗?它应该会有帮助,实际上我对它进行了研究,发现代码可以使用此逻辑,但在我的情况下,它不起作用