Is it possible to get the latitude and longitude of a draggable marker in a map (using javascript) into a form in HTML?

后端 未结 1 1343
Happy的楠姐
Happy的楠姐 2020-12-12 03:46

I am trying to obtain the Latitude and longitude of a draggable marker in google maps. I need this values to go directly into the value attribute in an

相关标签:
1条回答
  • 2020-12-12 04:27
    1. add the google.maps.Geocoder.
    2. call it with the address provided, using the returned coordinates to place a marker on the map.
    3. get the coordinates of that marker

    working snippet:

    var geocoder = new google.maps.Geocoder();
    var marker = null;
    var map = null;
    function initialize() {
          var $latitude = document.getElementById('latitude');
          var $longitude = document.getElementById('longitude');
          var latitude = 50.715591133433854
          var longitude = -3.53485107421875;
          var zoom = 16;
    
          var LatLng = new google.maps.LatLng(latitude, longitude);
    
          var mapOptions = {
            zoom: zoom,
            center: LatLng,
            panControl: false,
            zoomControl: false,
            scaleControl: true,
            mapTypeId: google.maps.MapTypeId.ROADMAP
          }
    
          map = new google.maps.Map(document.getElementById('map'), mapOptions);
          if (marker && marker.getMap) marker.setMap(map);
          marker = new google.maps.Marker({
            position: LatLng,
            map: map,
            title: 'Drag Me!',
            draggable: true
          });
    
          google.maps.event.addListener(marker, 'dragend', function(marker) {
            var latLng = marker.latLng;
            $latitude.value = latLng.lat();
            $longitude.value = latLng.lng();
          });
    
    
        }
        initialize();
        $('#findbutton').click(function (e) {
            var address = $("#Postcode").val();
            geocoder.geocode({ 'address': address }, function (results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    marker.setPosition(results[0].geometry.location);
                    $(latitude).val(marker.getPosition().lat());
                    $(longitude).val(marker.getPosition().lng());
                } else {
                    alert("Geocode was not successful for the following reason: " + status);
                }
            });
            e.preventDefault();
        });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
        <input type="text" id="latitude" placeholder="latitude">
        <input type="text" id="longitude" placeholder="longitude">
        <div id="map" style="width:500px; height:500px"></div>
        <p><input class="postcode" id="Postcode" name="Postcode" type="text" value="New York, NY">
        <input type="submit" id="findbutton" value="Find" /></p>

    0 讨论(0)
提交回复
热议问题