<!DOCTYPE html>
<html>

<head>
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
  <meta charset="utf-8">
  <title>Google map location demo</title>
  <link rel="stylesheet" href="style.css">
</head>

<body>
  <div class="getInfo">Loation:
    <input id="getInfo_location" type="text">
  </div>

  <div class="getInfo">Lat/Lng:
    <input id="getInfo_latlng" type="text">
  </div>

  <div class="getInfo">Timezone/s:
    <input id="getInfo_timezone" type="text">
  </div>

  <div id="showMap">
    <input id="searchBox" class="controls" type="text" placeholder="Search Box">
    <div id="map"></div>
  </div>
  <script src="https://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://api.map.baidu.com/api?v=1.4"></script>
  <script src="script.js"></script>  
</body>
</html>
var mapId = 'map';
var searchId = 'searchBox'

var $searchBox = $('#' + searchId);
var $location = $('#getInfo_location');
var $latlng = $('#getInfo_latlng');
var $timezone = $('#getInfo_timezone');

var isAutocomplete = false;

var map = new BMap.Map(mapId);
var marker = new BMap.Marker();
var geocoder = new BMap.Geocoder();
var autocomplete = new BMap.Autocomplete({
  input: searchId,
  location: map,
  //types: "city",
  onSearchComplete: function() {
    if (isAutocomplete) {
      autocomplete.show();
    } else {
      autocomplete.hide();
    }
  }
});
var initPoint = new BMap.Point(116, 33);
var initZoom = 6;

map.centerAndZoom(initPoint, initZoom);
map.enableInertialDragging();
map.enableScrollWheelZoom();
map.enableContinuousZoom();
map.addEventListener("tilesloaded", loadMap);
map.addEventListener("click", clickMap);

autocomplete.addEventListener("onconfirm", searchMap);
$searchBox.on("keydown", autocompleteMap);

/*******************************************************************************
 *
 *  Function Definition
 *
 *******************************************************************************/
function loadMap() {
  // var searchBox = new BMap.Autocomplete({ 
  //   input : searchId,
  //   location : map
  // });
}

function setMarker(point) {
  map.removeOverlay(marker);
  marker = new BMap.Marker(point);
  map.addOverlay(marker);
}

function setSearchBox(location) {
  $searchBox.val(location);
}

function setLocation(location) {
  $location.val(location);
}

function setLatlng(latlng) {
  latlng = latlng.lat + "," + latlng.lng;
  $latlng.val(latlng);
}

function infoTimezone(latlng) {

}

function clickMap(e) {
  var point = e.point;
  isAutocomplete = false;
  geocoder.getLocation(point, function(results) {
    var location = (results) ? results.address : "";
    if (location) {
      setMarker(point);
      setSearchBox(location);
      setLocation(location);
      setLatlng(point);
      //setTimezone(event.latLng);
    } else {
      console.warn("geocoder is not match!");
    }
  });
}

function autocompleteMap(e) {
  isAutocomplete = true;
}

function searchMap(e) {
  var keyCode = e.keyCode;
  var location = $searchBox.val();

  geocoder.getPoint(location, function(results) {
    var point = (results) ? results : "";
    if (point) {
      map.panTo(point);
      setMarker(point);
      setLocation(location);
      setLatlng(point);
      //setTimezone(event.latLng);
    } else {
      console.warn("geocoder is not match!");
    }
  });
}
      
.getInfo{
  margin: 5px;
  height:20px;
  width:100%
}
.getInfo input {
  width:500px;
}

#showMap {
  border:1px solid red;
  height:400px;
  width:100%
}
#map {
  height: 100%;
}

.controls {
  margin-top: 10px;
  border: 1px solid transparent;
  border-radius: 2px 0 0 2px;
  box-sizing: border-box;
  height: 32px;
  outline: none;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

#searchBox {
  background-color: #fff;
  font-family: Roboto;
  font-size: 15px;
  font-weight: 300;
  margin-left: 12px;
  padding: 0 11px 0 13px;
  text-overflow: ellipsis;
  width: 300px;
}

#pac-input:focus {
  border-color: #4d90fe;
}

.pac-container {
  font-family: Roboto;
}

#type-selector {
  color: #fff;
  background-color: #4d90fe;
  padding: 5px 11px 0px 11px;
}

#type-selector label {
  font-family: Roboto;
  font-size: 13px;
  font-weight: 300;
}