使用[微信考勤百度地图定位](http://blog.csdn.net/xuexiaodong009/article/details/48345445)中的方法定位,可以定位到一个具体的位置某省某市某区某路某号,总是让人感觉显示不是很友好,如果直接显示,软件园,科技园之类的是不是更好呢?于是查了一下百度地图的相关文档,其实也很简单。百度有附近的功能,还有地址解析的功能,都可以实现。
例如我就是用了Geocoder服务,实现了需要的效果。
**核心代码:**
~~~
var map = new BMap.Map("allmap");
var circle = new BMap.Geolocation();
circle.getCurrentPosition(locationResult); //
map.addOverlay(circle);
var tempGeocoder = new BMap.Geocoder();
function locationResult(geolocationResult) {
var Status = this.getStatus()
if (Status == 0)//检索成功。对应数值“0”。
{
$("#lng").val(geolocationResult.point.lng);
$("#lat").val(geolocationResult.point.lat);
var address = geolocationResult.address;
$("#city").val(address.city);
$("#district").val(address.district);
$("#street").val(address.street);
var text = "";
if (address.province != address.city)
{
text += address.province;
}
text += address.city + address.district + address.street + address.street_number;
tempGeocoder.getLocation(geolocationResult.point, locationResultcallback, { poiRadius: 500, numPois: 5 }); //
$("#province").val(address.province);
$("#address").val(text);
}
else {
alert("定位失败错误码" + Status)
}
}
function locationResultcallback(GeocoderResult) {
var yyy = GeocoderResult.surroundingPois;
if (GeocoderResult.surroundingPois.length > 0) {
var address2 = GeocoderResult.surroundingPois[0].title;
if (address2) {
var text = "";
var province = $("#province").val();
var city = $("#city").val();
if (province != city) {
text += province;
}
text += city;
$("#address").val(text + address2);
}
}
}
~~~
实现效果:
![](https://box.kancloud.cn/2016-01-14_569757de785ff.jpg)
**这样总比显示陕西省西安市雁塔区西三环好好的多吧。**