原文:【百度地图API】如何进行地址解析与反地址解析?——模糊地址能搜索到精确地理信息!

摘要:

  什么是地址解析?

  什么是反地址解析?

  如何运用地址解析,和反地址解析?

  可以同时运用地址解析,和反地址解析麼?答案是,可以的。详见最后一个示例与代码。

---------------------------------------------------------------------------------

一、地址解析

地址解析,是用户输入一个详细到门牌号的地址。例如“北京市中关村南大街27号中央民族大学”,那么地址解析接口,会返回一个经纬度Point。

接口定义如下:

getPoint(address:String, callback:Function, city:String)

对指定的地址进行解析。如果地址定位成功,则以地址所在的坐标点Point为参数调用回调函数。否则,回调函数的参数为nullcity为地址所在的城市名,例如“北京市”。

代码示例:

// 创建地址解析器实例var myGeo = new BMap.Geocoder();// 将地址解析结果显示在地图上,并调整地图视野myGeo.getPoint("北京市海淀区上地10街", function(point){  if (point) {    map.centerAndZoom(point, );    map.addOverlay(new BMap.Marker(point));  }}, "北京市");

运行该示例,请点击:http://openapi.baidu.com/map/examples.html?v=1.1&7_12#7&12

二、反地址解析

反地址解析,就是传进去一个经纬度Point,它会返回一个详细的地址。具体地址有多详细,就要看百度数据库里的数据了。

接口定义如下:

getLocation(point:Point, callback:function[, options:LocationOptions])

对指定的坐标点进行反向地址解析。如果解析成功,则回调函数的参数为GeocoderResult对象,否则回调函数的参数为null

代码示例:

var gc = new BMap.Geocoder();    map.addEventListener("click", function(e){            var pt = e.point;    gc.getLocation(pt, function(rs){        var addComp = rs.addressComponents;        alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);    });        });

运行该示例,请点击:http://openapi.baidu.com/map/examples.html?v=1.1&7_15#7&15

三、同时运用地址解析与反地址解析

在什么情况下需要同时运用这两个接口呢?

答案是,当你搜索一个模糊的地址,但却想要返回一个精确的地址结果。

例如“上海市新华路”,但是你想知道“新华路”在哪个区县的时候,你就可以同时利用这两个接口。

完整HTML代码:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>地址解析+反地址解析</title><script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script></head><body><div style="width:520px;height:340px;border:1px solid gray" id="container"></div><div style="margin:10px 0;"><input type="text" style="width:300px;margin-right:10px;" value="新华路" id="searchValue" /><input type="button" value="搜索" onclick="search()" /></div></body></html><script type="text/javascript">var map = new BMap.Map("container");map.centerAndZoom(new BMap.Point(121.461165,31.234095), 11);function search(){    var myAddress = document.getElementById('searchValue').value;        var myGeo = new BMap.Geocoder();    myGeo.getPoint(myAddress, function(point){     //我输入的是“知春路”,第一步getPoint是地址解析。      if (point) {        map.centerAndZoom(point, 16);        map.addOverlay(new BMap.Marker(point));        myGeo.getLocation(point, function(rs){  //这里弹出“知春路”的详细地址信息,第二步getLocation是反地址解析。            var addComp = rs.addressComponents;            alert(myAddress+'的具体位置是:'+addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);        });      }    }, "上海市");   //必须设置城市    }</script>

地址解析+反地址解析示例说明:

1、运行以上HTML代码,会出现这样一个输入框,默认是新华路。点击搜索按钮。

2、经过了地址解析,与反地址解析后,得到了新华路所在地区的详细地址!!!

3、把得到的坐标标注出来。

【百度地图API】如何进行地址解析与反地址解析?——模糊地址能搜索到精确地理信息!的更多相关文章

  1. 调用百度地图API实现手机自动定位 (逆地址解析)

    //声明地址解析器 var geoc = new BMap.Geocoder(); //自动定位 var autoLocation = function () { if (navigator.geol ...

  2. 百度地图api开发:根据坐标获得地理描述地址

    // 创建地理编码实例              var myGeo = new BMap.Geocoder();              // 根据坐标得到地址描述            myGe ...

  3. 百度地图api通过地址显示地图,白名单

    百度地图api通过地址显示地图,白名单 http://developer.baidu.com/map/jsdemo.htm#i7_1?qq-pf-to=pcqq.c2c---------------- ...

  4. 【百度地图API】让用户选择起点和终点的驾车导航

    原文:[百度地图API]让用户选择起点和终点的驾车导航 摘要: 如果用户搜索“从机场到火车站”,使用驾车导航DrivingRoute会默认显示一条结果.但同一个城市可能有多个机场和火车站,那么,如何用 ...

  5. 【百度地图API】批量地址解析与批量反地址解析(带商圈数据)

    原文:[百度地图API]批量地址解析与批量反地址解析(带商圈数据) 摘要:因为地址解析的webserives方式还没有开通,所以先用JS版本的地址解析接口来批量获取地址解析数据吧,同时还能得到商圈的数 ...

  6. 【百度地图API】如何区分地址解析和智能搜索?

    原文:[百度地图API]如何区分地址解析和智能搜索? 摘要: 很多用户一直无法区分地址解析geocoder和智能搜索localsearch的使用场景.该文章用一个详尽的示例,充分展示了这两个类,共5种 ...

  7. 【百度地图API】当地址解析失败时,如何调用search方法查找地址

    原文:[百度地图API]当地址解析失败时,如何调用search方法查找地址 有个朋友问我,当地址解析失败时,应该如何处理呢?比如,他想搜索“南宁市青秀区”. --------------------- ...

  8. 百度地图API提供Geocoder类进行地址解析

    根据地址描述获得坐标百度地图API提供Geocoder类进行地址解析,您可以通过Geocoder.getPoint()方法来将一段地址描述转换为一个坐标. // 创建地址解析器实例var myGeo ...

  9. 【百度地图API】如何根据摩卡托坐标进行POI查询,和计算两点距离

    原文:[百度地图API]如何根据摩卡托坐标进行POI查询,和计算两点距离 摘要: 百度地图API有两种坐标系,一种是百度经纬度,一种是摩卡托坐标系.在本章你将学会: 1.如何相互转换这两种坐标: 2. ...

随机推荐

  1. BZOJ 3236 AHOI 2013 作业 莫队算法

    题目大意:给出一些数,问在一个区间中不同的数值有多少种,和在一个区间中不同的数值有多少个. 思路:因为没有改动,所以就想到了莫队算法.然后我写了5K+的曼哈顿距离最小生成树,然后果断T了.(100s的 ...

  2. hdu3790最短路径问题

    题意是这种,给你一个无向图, 每条边有距离和花费, 假设从第一个点到末点的最短路不唯一, 则输出最短路长度以及最少的花费. 否则输出长度和花费即可. 用传说中的链式向前星优化了一下边的存储, 写了个s ...

  3. STL内存分配

    STL内存创建 Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu  转载请标明来源 1.      Stl内存创建基类模板__malloc_alloc_tem ...

  4. RH033读书笔记(15)-Lab 16 The Linux Filesystem

    Lab 16 The Linux Filesystem Goal: Develop a better understanding of Linux filesystem essentials incl ...

  5. 修改session的存储机制

    <?php  //修改session的存储机制 //最起码应该有一个 读方法, 和一个 写方法. //1, 我们先去建立 读方法 和 写方法. //2, 告知session系统,使用我们的方法完 ...

  6. 创建在SQLServer 和 Oracle的 DBLINK

    dblink 当我们要跨本地数据库.訪问另外一个数据库表中的数据时,本地数据库中就必需要创建远程数据库的dblink,通过dblink本地数据库能够像訪问本地数据库一样訪问远程数据库表中的数据. 一 ...

  7. NSUserDefaults API简单的介绍和使用英文文件

    Overview The NSUserDefaults class provides a programmatic interface for interacting with the default ...

  8. 数据同步DataX

    数据同步那些事儿(优化过程分享)   简介 很久之前就想写这篇文章了,主要是介绍一下我做数据同步的过程中遇到的一些有意思的内容,和提升效率的过程. 当前在数据处理的过程中,数据同步如同血液一般充满全过 ...

  9. 2年SQL Server DBA调优方面总结

    原文:2年SQL Server DBA调优方面总结 2年SQL Server DBA调优方面总结 当2年dba 我觉得,有些东西需要和大家分享探讨,先书单. 书单 1.<深入解析SQL Serv ...

  10. android内置存储器memory和第三方外部存储disk管理

    缓存管理这里 http://blog.csdn.net/intbird/article/details/38338713 图片处理在这里 http://blog.csdn.net/intbird/ar ...