百度地图通过地址解析经纬度、在通过经纬度解析地址。效果图如下:


代码示例:

var map = new BMap.Map("map");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 12);

//定位到当前城市
function myFun(result){
    var cityName = result.name;
    map.setCenter(cityName);
}
var myCity = new BMap.LocalCity();
myCity.get(myFun);

//默认有个点
var market;
var myGeo = new BMap.Geocoder();
var dbPoint = new BMap.Point(lng, lat);	
map.centerAndZoom(dbPoint, 16);
market = new BMap.Marker(dbPoint);
map.addOverlay(market);
market.enableDragging(true);
//移动标注点
market.addEventListener("dragend",function(){
	var newPoint = market.getPosition();
	$("#lat").val(newPoint.lat);
	$("#lng").val(newPoint.lng);
	myGeo.getLocation(newPoint, function(rs){
		var addComp = rs.addressComponents;
		$("#address").val(addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber);
		$("#province").val(addComp.province.replace(/省/, ''));
		$("#city").val(addComp.city.replace(/市/, ''));
		$("#district").val(addComp.district);
	});
});

//通过点击获取坐标进行操作
$(".getPos").click(function(){
	var address = $("#address").val();
	if($.isEmpty(address))
	{
		easyDialog.open({
			container : {
				content : '地址栏不能为空'
			},
			autoClose : 2000
		});
	}
	else
	{
		map.removeOverlay(market);		
		myGeo.getPoint(address, function(point)
		{
			if (point)
			{
				$("#lat").val(point.lat);
				$("#lng").val(point.lng);
				map.centerAndZoom(point, 16);
				market = new BMap.Marker(point);
				map.addOverlay(market);
				myGeo.getLocation(point, function(rs){
					var addComp = rs.addressComponents;
					$("#address").val(addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber);
					$("#province").val(addComp.province.replace(/省/, ''));
					$("#city").val(addComp.city.replace(/市/, ''));
					$("#district").val(addComp.district);
				});
				market.enableDragging(true);
				market.addEventListener("dragend",function(){
					var newPoint = market.getPosition();
					$("#lat").val(newPoint.lat);
					$("#lng").val(newPoint.lng);
					myGeo.getLocation(newPoint, function(rs){
						var addComp = rs.addressComponents;
						$("#address").val(addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber);
						$("#province").val(addComp.province.replace(/省/, ''));
						$("#city").val(addComp.city.replace(/市/, ''));
						$("#district").val(addComp.district);
					});
				});
			}
			else
			{
				easyDialog.open({
					container : {
						content : '无法获取位置'
					},
					autoClose : 2000
				});
			}
		});
	}
});
map.addControl(new BMap.NavigationControl());