2013-12-12 1 views
-1

Это мой файл index.html. У меня есть проблема с тем, что функция геокодирования работает. Форма и кнопка появляются, но ничего не происходит, когда я нажимаю кнопку вообще.Геокодер Google не работает

<!DOCTYPE html> 
<html> 
<head> 
<title>First Google Map</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    function initialize() { 
    var latlng = new google.maps.LatLng(43.696299,-79.346271); 
    var myOptions = { 
    zoom:13, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.MAP 
}; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    geocoder = new google.maps.Geocoder(); 

    var myPlacesKML = new google.maps.KmlLayer('http://mristo.webatu.com/melissaristo/kml/torontodonvalley.kml?ver=1'); 
    myPlacesKML.setMap(map); 

    function geocode() { 
    address = document.getElementById("address").value; 
    geocoder.geocode({ 
    'address': address, 
    'partialmatch': true}, geocodeResult); 
    } 
    } 
    </script> 
</head> 
<body onload="initialize()"> 
<input type="text" id="address"> 
<input type="button" onclick="geocode();" value="Geocode it!" 
} 
</script> 
<body onload="initialize()"> 
<div id="map_canvas" style="width:500px; height:400px"></div> 
</body> 
</html> 

Форма и кнопка появляются, но кнопка ничего не делает, когда я нажимаю на нее. Любые идеи? Я очень новичок в этом и довольно потерял

+1

Пожалуйста, правильно отпечатайте свой код, я не могу сказать, где заканчиваются функции или если это всего лишь вложенная вещь –

+0

@RUJordan, надеюсь, это лучше? – user3096351

+0

Почему после этого закрытого входного тега есть скобка? –

ответ

1

Этот код содержит много ошибок. Я исправил это. Он поместит маркер по адресу, который вы ввели в текстовое поле.

<!DOCTYPE html> 
<html> 
<head> 
<title>First Google Map</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    var map; 
    function initialize() { 
    var latlng = new google.maps.LatLng(43.696299,-79.346271); 
    var myOptions = { 
    zoom:13, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.MAP 
}; 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    geocoder = new google.maps.Geocoder(); 

    var myPlacesKML = new google.maps.KmlLayer('http://mristo.webatu.com/melissaristo/kml/torontodonvalley.kml?ver=1'); 
    myPlacesKML.setMap(map); 
    } 

    function geocode() { 
    address = document.getElementById("address").value; 
    geocoder.geocode({ 
    'address': address, 
    'partialmatch': true}, geocodeResult); 
    } 

    function geocodeResult(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); 
    } 

    } 
    </script> 
</head> 
<body onload="initialize()"> 
<input type="text" id="address"> 
<input type="button" onclick="geocode();" value="Geocode it!"> 

<div id="map_canvas" style="width:500px; height:400px"></div> 
</body> 
</html> 

Вот ошибки: 1. дополнительных}
2. переменная карта была локальным, нужно быть глобальными.
3. отсутствует функция geocodeResult
4. дополнительный тег тела
5. отсутствует закрытие> из входного
6. перемещение геокод() внутри Initialize() до глобального.