这是我很久以前写的一些代码,可能会为您指明正确的方向。您可能需要填补一些空白。
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<input id="gmap_start_address" type="text" />
</body>
</html>
initialize();
// Handle enter button click event for start address input text field
$("#gmap_start_address").keypress(function(event){
if(event.keyCode == 13){
event.preventDefault();
goStartAddr();
}
});
/**
* Handle initialization of google map
* @params
*/
function initialize() {
var gmapZoom = 4;
geocoder = new google.maps.Geocoder();
// Set default myLatLng to be used if google.loader.ClientLocation fails
var myLatlng = new google.maps.LatLng(40.8802950337396, -102.21679674999996);
// If ClientLocation was filled in by the loader, use that info instead
if (google.loader.ClientLocation) {
gmapZoom = 13;
myLatlng = new google.maps.LatLng( google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude);
}
var myOptions = {
zoom: gmapZoom,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var polyOptions = {
strokeColor: '#5F5CFA',
strokeOpacity: 0.5,
strokeWeight: 3
}
poly = new google.maps.Polyline(polyOptions);
poly.setMap(map);
// Add a listener for the click event
google.maps.event.addListener(map, 'click', addLatLng);
}
/**
* Handle GO button click to process start address
* @params
*/
function goStartAddr(){
var startAddr = $('#gmap_start_address').val();
if(startAddr != '' && startAddr != 'Starting address, city, zip code'){
placeStartMkr();
} else {
alert('Please enter start address.');
$('#gmap_start_address').focus();
}
}
/**
* Handle marker placement from human address start point.
* Originally this function placed a starting marker
* Starting marker code is commented out and preserved for
* ease of use in the future.
* @params
*/
function placeStartMkr(){
// Grab address
var humanAddr = $('#gmap_start_address').val();
geocoder.geocode( { 'address': humanAddr}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
map.setZoom(16);
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}