Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Google maps api 3 按ENTER键在Google Map v3上搜索地址_Google Maps Api 3_Geocoding - Fatal编程技术网

Google maps api 3 按ENTER键在Google Map v3上搜索地址

Google maps api 3 按ENTER键在Google Map v3上搜索地址,google-maps-api-3,geocoding,Google Maps Api 3,Geocoding,我有工作的java脚本谷歌地图Api v3与地理编码。 当我在搜索框中键入例如邮政编码时,我可以从列表中选择地址。如果我做同样的事情并按ENTER键,则不会发生任何事情。如何修改代码 <input id="address" type="textbox"> 我已尝试添加搜索按钮: <input id="search" type="button" value="Search" onclick="codeAddress()"> 在Java脚本中添加函数codeAddress

我有工作的java脚本谷歌地图Api v3与地理编码。 当我在搜索框中键入例如邮政编码时,我可以从列表中选择地址。如果我做同样的事情并按ENTER键,则不会发生任何事情。如何修改代码

<input id="address" type="textbox">
我已尝试添加搜索按钮:

<input id="search" type="button" value="Search" onclick="codeAddress()">
在Java脚本中添加函数codeAddress,但我一定是做错了什么,因为这样做不起作用

无需输入即可工作

你可以试试这个,也许你会有一些想法


他们也在使用地理代码,所以你可以参考代码。

我不是100%确定你做错了什么,因为你没有发布所有代码。但我在FF中测试过这个例子:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>    <!-- Google Maps API -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>   
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

    <script>
    var geocoder;
var map;
var marker;

function initialize(){
  //MAP
  var latlng = new google.maps.LatLng(51.469186, -0.361166);
  var options = {
    zoom: 11,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  map = new google.maps.Map(document.getElementById("map_canvas"), options);

  //GEOCODER
  geocoder = new google.maps.Geocoder();

  marker = new google.maps.Marker({
    map: map,
    draggable: false
  });

  //CIRCLE
  var circle = new google.maps.Circle({
    map: map,
    center: new google.maps.LatLng(51.469186, -0.361166),
    fillColor: '#204617',
    fillOpacity: 0.2,
    strokeColor: '#6DE953',
    strokeOpacity: 0.4,
    strokeWeight: 2
  });
  circle.setRadius(10000);
}
</script>

<script>
$(document).ready(function() { 

  initialize();

  $(function() {
    $("#address").autocomplete({
      //This bit uses the geocoder to fetch address values
      source: function(request, response) {
        geocoder.geocode( {'address': request.term }, function(results, status) {
          response($.map(results, function(item) {
            return {
              label:  item.formatted_address,
              value: item.formatted_address,
              latitude: item.geometry.location.lat(),
              longitude: item.geometry.location.lng()
            }
          }));
        })
      },
      //This bit is executed upon selection of an address
      select: function(event, ui) {
        var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
        marker.setPosition(location);
        map.setCenter(location);
      }
    });
    document.getElementById("address").focus();
  });
});


    </script>
    <style>
    /* style settings for Google map */
    #map_canvas
    {
        width : 500px;  /* map width */
        height: 500px;  /* map height */
    }
    </style>
</head>
<body onload="initialize()"> 
    <!-- Dislay Google map here -->
    <div id='map_canvas' ></div>
    <input id="address" type="textbox">
</body>
</html>

我没有在您提供的代码中看到您的codeAddress函数,这将是问题所在。与为单击事件提供事件处理程序的方式相同,您需要对enter事件执行相同的操作{但这破坏了代码,没有任何效果,所以我恢复了更改。该代码与enter不兼容。您必须从列表中选择地址。有一件事您可以在onkeypress jquery上调用该方法,并检查按下的键的键代码(如果keycode=32enter),然后执行搜索
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>    <!-- Google Maps API -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>   
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

    <script>
    var geocoder;
var map;
var marker;

function initialize(){
  //MAP
  var latlng = new google.maps.LatLng(51.469186, -0.361166);
  var options = {
    zoom: 11,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  map = new google.maps.Map(document.getElementById("map_canvas"), options);

  //GEOCODER
  geocoder = new google.maps.Geocoder();

  marker = new google.maps.Marker({
    map: map,
    draggable: false
  });

  //CIRCLE
  var circle = new google.maps.Circle({
    map: map,
    center: new google.maps.LatLng(51.469186, -0.361166),
    fillColor: '#204617',
    fillOpacity: 0.2,
    strokeColor: '#6DE953',
    strokeOpacity: 0.4,
    strokeWeight: 2
  });
  circle.setRadius(10000);
}
</script>

<script>
$(document).ready(function() { 

  initialize();

  $(function() {
    $("#address").autocomplete({
      //This bit uses the geocoder to fetch address values
      source: function(request, response) {
        geocoder.geocode( {'address': request.term }, function(results, status) {
          response($.map(results, function(item) {
            return {
              label:  item.formatted_address,
              value: item.formatted_address,
              latitude: item.geometry.location.lat(),
              longitude: item.geometry.location.lng()
            }
          }));
        })
      },
      //This bit is executed upon selection of an address
      select: function(event, ui) {
        var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
        marker.setPosition(location);
        map.setCenter(location);
      }
    });
    document.getElementById("address").focus();
  });
});


    </script>
    <style>
    /* style settings for Google map */
    #map_canvas
    {
        width : 500px;  /* map width */
        height: 500px;  /* map height */
    }
    </style>
</head>
<body onload="initialize()"> 
    <!-- Dislay Google map here -->
    <div id='map_canvas' ></div>
    <input id="address" type="textbox">
</body>
</html>