2

我有这段代码,它显示了在“LatLng”坐标中指定的当前位置。但我想要的是有一个输入框,比如说 2 个输入框“位置从”和“位置到”。我希望从 2 个框中显示给定输入值的当前位置,如图所示。

在 Google Map V3 中可能吗?

我想让 mapOptions 值成为框中输入的值。怎么做?

这是我的代码。

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?key=AIzaSyBQ8OCC8En5vNHod25Ov3Qs5E1v7NPRSsg&sensor=true">
    </script>
    <script type="text/javascript">
      function initialize() {
                    // add mapOptions here to the values in the input boxes.
        var mapOptions = {
          center: new google.maps.LatLng(-34.397, 100.644),
          zoom: 2,
          mapTypeId: google.maps.MapTypeId.ROADMAP  
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"),
            mapOptions);
      }
    </script>
  </head>
  <body>

    From: <input type="text" name="From"><br>
    To: <input type="text" name="To"><br>

    <button type="button" onclick="initialize()">View example (map-simple.html)</button>

    <div id="map_canvas" style="width:100%; height:100%"></div>
  </body>
</html>

谢谢

杰森

4

3 回答 3

4

你应该使用geocoder

geocoder = new google.maps.Geocoder();      
var address = document.getElementById('address').value; //input box value
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
        map: map,
        position: results[0].geometry.location
    });
}
});  

地图小提琴

于 2012-10-16T07:04:43.883 回答
1

您可以查看此地址上的示例:https ://developers.google.com/maps/documentation/javascript/demogallery

在这里,您可以找到您问题的答案以及您可能需要进一步了解的更高级技术。

问候!

于 2012-10-16T06:48:59.253 回答
0

也许是这样的:

boxLat.value = map.getCenter().getLat() ;
boxLng.value = map.getCenter().getLng() ;
于 2012-10-16T06:46:53.220 回答