无法通过对用户搜索进行地理编码来使谷歌地图更新位置

时间:2016-05-22 23:57:22

标签: google-maps-api-3 google-geocoding-api

当我们点击提交时,我试图让我的地图更新与mapSearch框中的用户输入,但我遗漏了一些未将提交的onclick函数与latlng变量相关联的内容。

var geocoder;
var map;
function initialize() {

geocoder = new google.maps.Geocoder();
var latlng =new google.maps.LatLng(-34.397,150.644);

   var mapProp = {
    center: latlng, 
    }
var map=new google.maps.Map(document.getElementById("googleMap"), mapProp);

  };

var searchBox = new google.maps.places.SearchBox(document.getElementById('mapsearch'));

google.maps.event.addDomListener(searchBox, 'places_changed', function(){

  var places = searchBox.getPlaces();

  var bounds = new google.maps.LatLngBounds();
  var i, place;

  for (i=0; place=places[i]; i++){

    bounds.extend(place.geometry.location);

  }
});


$( "#Submit" ).click(function codeAddress(){
  var address = document.getElementById("mapsearch").value;
  geocoder.geocode( {'mapsearch': 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
      });

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

1 个答案:

答案 0 :(得分:0)

我在此行发布了代码InvalidValueError: unknown property mapsearch的javascript错误:geocoder.geocode( {'mapsearch': address},(应该是'地址'):

$("#Submit").click(function codeAddress() {
  var address = document.getElementById("mapsearch").value;
  geocoder.geocode({
    'address': address
  },

代码段



var geocoder;
var map;

function initialize() {

  geocoder = new google.maps.Geocoder();
  var latlng = new google.maps.LatLng(-34.397, 150.644);

  var mapProp = {
    center: latlng,
    zoom: 3
  }

  var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);



  $("#Submit").click(function codeAddress() {
    var address = document.getElementById("mapsearch").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
          });

        } else {
          alert("Geocode was not successful for the following reason: " + status);
        }
      });
  });
}
google.maps.event.addDomListener(window, "load", initialize);

html,
body,
#googleMap {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
<input id="Submit" type="button" value="submit" />
<input id="mapsearch" value="New York, NY" />
<div id="googleMap"></div>
&#13;
&#13;
&#13;