Retrieve latitude and longitude of a draggable pin via Google Maps API V3

后端 未结 8 470
礼貌的吻别
礼貌的吻别 2020-11-29 18:23

I will explain. I managed to have a draggable pin on a map. I want to retrieve the coordinates of this point and put them into two fields: Latitude and Longitude. These coor

相关标签:
8条回答
  • 2020-11-29 19:23

    Google Maps V3 Example. Here's a working example of a user dropping a single pin, replacing a dropped pin with new pin, custom pin images, pins that populate lat/long values in a FORM FIELD within a DIV.

    <html>
    <body onLoad="initialize()">
    
      <div id="map_canvas" style="width:50%; height:50%"></div>
    
      <div id="latlong">
        <p>Latitude: <input size="20" type="text" id="latbox" name="lat" ></p>
        <p>Longitude: <input size="20" type="text" id="lngbox" name="lng" ></p>
      </div>
    
    </body>
    </html>
    
    <cfoutput>
        <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=#YOUR-GOOGLE-API-KEY#&sensor=false"></script>
    </cfoutput>
    
    <script type="text/javascript">
    //<![CDATA[
    
        // global "map" variable
        var map = null;
        var marker = null;
    
        // popup window for pin, if in use
        var infowindow = new google.maps.InfoWindow({ 
            size: new google.maps.Size(150,50)
            });
    
        // A function to create the marker and set up the event window function 
        function createMarker(latlng, name, html) {
    
        var contentString = html;
    
        var marker = new google.maps.Marker({
            position: latlng,
            map: map,
            zIndex: Math.round(latlng.lat()*-100000)<<5
            });
    
        google.maps.event.addListener(marker, 'click', function() {
            infowindow.setContent(contentString); 
            infowindow.open(map,marker);
            });
    
        google.maps.event.trigger(marker, 'click');    
        return marker;
    
    }
    
    function initialize() {
    
        // the location of the initial pin
        var myLatlng = new google.maps.LatLng(33.926315,-118.312805);
    
        // create the map
        var myOptions = {
            zoom: 19,
            center: myLatlng,
            mapTypeControl: true,
            mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
            navigationControl: true,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
    
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    
        // establish the initial marker/pin
        var image = '/images/googlepins/pin2.png';  
        marker = new google.maps.Marker({
          position: myLatlng,
          map: map,
          icon: image,
          title:"Property Location"
        });
    
        // establish the initial div form fields
        formlat = document.getElementById("latbox").value = myLatlng.lat();
        formlng = document.getElementById("lngbox").value = myLatlng.lng();
    
        // close popup window
        google.maps.event.addListener(map, 'click', function() {
            infowindow.close();
            });
    
        // removing old markers/pins
        google.maps.event.addListener(map, 'click', function(event) {
            //call function to create marker
             if (marker) {
                marker.setMap(null);
                marker = null;
             }
    
            // Information for popup window if you so chose to have one
            /*
             marker = createMarker(event.latLng, "name", "<b>Location</b><br>"+event.latLng);
            */
    
            var image = '/images/googlepins/pin2.png';
            var myLatLng = event.latLng ;
            /*  
            var marker = new google.maps.Marker({
                by removing the 'var' subsquent pin placement removes the old pin icon
            */
            marker = new google.maps.Marker({   
                position: myLatLng,
                map: map,
                icon: image,
                title:"Property Location"
            });
    
            // populate the form fields with lat & lng 
            formlat = document.getElementById("latbox").value = event.latLng.lat();
            formlng = document.getElementById("lngbox").value = event.latLng.lng();
    
        });
    
    }
    //]]>
    
    </script> 
    
    0 讨论(0)
  • 2020-11-29 19:25

    tRy This :)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <!--
    develop by manoj sarnaik
     -->
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
      <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
        <title>Manoj Sarnaik</title>
        <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxSPW5CJgpdgO_s4yyMovOaVh_KvvhSfpvagV18eOyDWu7VytS6Bi1CWxw"
          type="text/javascript"></script>
        <script type="text/javascript">
    
        var map = null;
        var geocoder = null;
    
        function initialize() {
          if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("map_canvas"));
            map.setCenter(new GLatLng(20.236046, 76.988255), 1);
            map.setUIToDefault();
            geocoder = new GClientGeocoder();
          }
        }
    
        function showAddress(address) {
          if (geocoder) {
            geocoder.getLatLng(
              address,
              function(point) {
                if (!point) {
                  alert(address + " not found");
                } else {
                  map.setCenter(point, 15);
                  var marker = new GMarker(point, {draggable: true});
                  map.addOverlay(marker);
                  GEvent.addListener(marker, "dragend", function() {
                    marker.openInfoWindowHtml(marker.getLatLng().toUrlValue(6));
                  });
                  GEvent.addListener(marker, "click", function() {
                    marker.openInfoWindowHtml(marker.getLatLng().toUrlValue(6));
                  });
              GEvent.trigger(marker, "click");
                }
              }
            );
          }
        }
        </script>
      </head>
    
      <body onload="initialize()" onunload="GUnload()">
        <form action="#" onsubmit="showAddress(this.address.value); return false">
    
          <p>
            <input type="text" style="width:350px" name="address" value="Malegaon,washim" />
            <input type="submit" value="Go!" />
          </p>
          <div id="map_canvas" style="width: 600px; height: 400px"></div>
        </form>
    
      </body>
    </html>
    
    0 讨论(0)
提交回复
热议问题