利用百度地图WEB服务APIGeoCoding API批量地址解析

  Geocoding API包括地址解析和逆地址解析功能:

  地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”。同时,地理编码也支持名胜古迹、标志性建筑名称直接解析返回百度经纬度,例如:“百度大厦”地址解析的结果是“lng:116.30815,lat:40.056885” ,通用的POI检索需求,建议使用Place API。

  逆地理编码:即逆地址解析,由百度经纬度信息得到结构化地址信息,例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。

  本文所讲的是地理编码,从本地硬盘读取excel数据,地址解析,将结果存到本地的excel数据表当中。

  主要代码如下:

  

        try{
            address = URLEncoder.encode(address,"UTF-8");

            URL resjson = new URL("http://api.map.baidu.com/geocoder/v2/?address="
                    +address+"&output=json&ak="+key+"&callback=showLocation");
            BufferedReader in = null;
            if(resjson.openStream()!=null){
                in = new BufferedReader(new InputStreamReader(resjson.openStream()));
            }

            String res;
            StringBuilder sb = new StringBuilder("");
            while ((res=in.readLine())!=null) {

                sb.append(res.trim());
            }

            in.close();
            String str = sb.toString();
            //System.out.println("return json:"+str);

            Map<String,String> map = null;
            if(str!=null)
            {
                int lngStart = str.indexOf("lng\":");
                int lngEnd = str.indexOf(",\"lat");
                int latEnd = str.indexOf("},\"precise");
                int preciseEnd = str.indexOf(",\"confidence");
                int confidenceEnd = str.indexOf(",\"level");
                if(lngStart>0&&lngEnd>0&&latEnd>0){
                    String lng = str.substring(lngStart+5,lngEnd);
                    String lat = str.substring(lngEnd+7,latEnd);
                    String precise = str.substring(latEnd+12,preciseEnd);
                    String confidence = str.substring(preciseEnd+14,confidenceEnd);
                    map = new HashMap<String, String>();
                    map.put("lng", lng);
                    map.put("lat", lat);
                    map.put("precise", precise);
                    map.put("confidence", confidence);
                    return map;

                }

            }
            }catch(Exception e){
                e.printStackTrace();
            }

            return null;
        }

取得的结果数据主要包括了对应地址的经度、纬度、是否精确查找,打点的可信度。

  

时间: 2024-07-30 10:05:24

利用百度地图WEB服务APIGeoCoding API批量地址解析的相关文章

Node.js调用百度地图Web服务API的Geocoding接口进行点位反地理信息编码

(从我的新浪博客上搬来的,做了一些修改.) 最近迷上了node.js以及JavaScript.现在接到一个活,要解析一个出租车点位数据的地理信息.于是就想到使用Node.js调用百度地图API进行解析. 使用的库主要就是有fs.request. // 请求包 var fs = require('fs');var request = require('request'); // 设置百度API的参数var baiduApiKey = "cQV9U4QhamoOjg6rjdOTAQSiUMxxxxx

C# 调用百度地图web服务API

1.关于百度提供的接口中的方法的实用,这里有很多官方提供的DEMO(http://developer.baidu.com/map/jshome.htm). 2.为了能与JS交互,首先引入using System.Security.Permissions: 在命名空间里添加: [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] [System.Runtime.InteropServices.ComVisibleAttrib

百度地图坐标转换服务封装(优化批量并发异步访问)

本人接触网页地图以来已有5年之窗,与百度地图打交道少说也有3年以上了,百度坐标转换从最开始的只支持单组坐标转换到现在的批量转换(限制每次100组),而且是无规律的算法纠偏,根本不好复制这种算法到本地进行转换,每次只能乖乖的ajax get到百度服务接口返回结果. 这种做法对于单组坐标的转换体验上影响不大,但是当我们需要纠偏的坐标量很多的时候,按正常的写法ajax异步请求,而且每次最多只能传入100组坐标,只能分批来调,而且是异步处理,还要定义一堆全局变量记住状态值,代码量多且复杂,项目大就难以管

利用百度地图API和群蚁算法,对TSP问题进行模拟与求解

前言 最近由于换了工作,期间也有反思和总结上家公司的得失,总觉得有什么事情当初可以完成或者完成得更好,其中TSP问题就是其中之一.当初在开发一个仓配系统的时候,有一个线路排程的需求,当时自己简单在纸上画了思路,发现求精确解算法复杂度是N!,所以去百度,发现了NPC问题的概念,但是一直以来都没有对这个问题好好研究过,最终只是选择了贪心算法这一求近似解的方案,正好这是我的第一篇博客,就拿这个“遗憾”开刀吧. 1.  利用百度地图API模拟TSP的各个城市点 1.1. 调用百度地图API解析经纬度 这

利用百度地图API获取当前位置信息

利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: 1 <script type="text/javascript"> 2 var map; 3 var gpsPoint; 4 var baiduPoint; 5 var gpsAddress; 6 var baiduAddress; 7 var x; 8 var y; 9 function getLocation() { 10 //根据IP获取城市 1

利用百度地图API,获取经纬度坐标

利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代码下载:http://files.cnblogs.com/zjfree/select_map.rar 利用百度地图API,获取经纬度坐标,布布扣,bubuko.com

【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件

目录 概述 功能 如何使用 参考帮助 概述 源代码主要包含三个项目,BMap.NET.BMap.NET.WindowsForm以及BMap.NET.WinformDemo. BMap.NET 对百度地图Web Service API 的一些封装,每个接口返回的都是JObject类型(参见Json.NET): BMap.NET.WindowsForm(开始少写了一个s ,后来一直没改) 提供一系列可以在Winform中使用的控件,包括地图显示控件.导航控件.POI查找控件等等: BMap.NET.

【百度地图API】建立全国银行位置查询系统(四)——如何利用百度地图的数据生成自己的标注

原文:[百度地图API]建立全国银行位置查询系统(四)--如何利用百度地图的数据生成自己的标注 摘要: 上一章留个悬念,"如果自己没有地理坐标的数据库,应该怎样制作银行的分布地图呢?" 答案就是,利用百度地图上的数据. ---------------------------------------------------------------------------------------------- 我们不用花大把时间写代码去跑数据,只需要利用百度地图API提供的免费接口,就可以

百度地图 web定位

<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><title>测试定位</title><script type="text/javascript"