zoukankan      html  css  js  c++  java
  • 百度提供的LBS服务

    并不是所有 LBS 云服务 都可以使用 js Ajax 访问,涉及跨域问题 (Jsonp 方式解决)
    Jsonp 解决跨域问题原理,在页面生成<script> 加载远程 js 代码片段.
    在LBS的服务文档:http://lbsyun.baidu.com/index.php?title=lbscloud/api/geosearch,除了云存储都有callback回调函数.
    在jQuery的API文档中 $.getJSON(url,[data],function(data))加入callback=?执行回调函数.


    package
    cn.itcast.map; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.junit.Test; // 云存储 public class BaiduMapCloudStorageTest { // 创建表 @Test public void demo1() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://api.map.baidu.com/geodata/v3/geotable/create"); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("name", "mytable1")); nameValuePairs.add(new BasicNameValuePair("geotype", "1")); nameValuePairs.add(new BasicNameValuePair("is_published", "1")); nameValuePairs.add(new BasicNameValuePair("ak", "zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf")); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 查询表 public void demo2() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet( "http://api.map.baidu.com/geodata/v3/geotable/list?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf"); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 查询表结构 public void demo3() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet( "http://api.map.baidu.com/geodata/v3/geotable/detail?id=153944&ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf"); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 创建列 public void demo4() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://api.map.baidu.com/geodata/v3/column/create"); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("geotable_id", "153944")); nameValuePairs.add(new BasicNameValuePair("name", "名称")); nameValuePairs.add(new BasicNameValuePair("key", "name")); nameValuePairs.add(new BasicNameValuePair("type", "3")); nameValuePairs.add(new BasicNameValuePair("max_length", "512")); nameValuePairs.add(new BasicNameValuePair("is_sortfilter_field", "0")); nameValuePairs.add(new BasicNameValuePair("is_search_field", "1")); nameValuePairs.add(new BasicNameValuePair("is_index_field", "1")); nameValuePairs.add(new BasicNameValuePair("is_unique_field", "1")); nameValuePairs.add(new BasicNameValuePair("ak", "zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf")); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 查询列 public void demo5() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet( "http://api.map.baidu.com/geodata/v3/column/list?geotable_id=153944&ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf"); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 查询指定id列 public void demo6() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet( "http://api.map.baidu.com/geodata/v3/column/detail?id=265695&geotable_id=153944&ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf"); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 修改列 public void demo7() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://api.map.baidu.com/geodata/v3/column/update"); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("id", "265695")); nameValuePairs.add(new BasicNameValuePair("geotable_id", "153944")); nameValuePairs.add(new BasicNameValuePair("name", "描述")); nameValuePairs.add(new BasicNameValuePair("key", "name")); nameValuePairs.add(new BasicNameValuePair("type", "3")); nameValuePairs.add(new BasicNameValuePair("max_length", "512")); nameValuePairs.add(new BasicNameValuePair("is_sortfilter_field", "0")); nameValuePairs.add(new BasicNameValuePair("is_search_field", "1")); nameValuePairs.add(new BasicNameValuePair("is_index_field", "1")); nameValuePairs.add(new BasicNameValuePair("is_unique_field", "1")); nameValuePairs.add(new BasicNameValuePair("ak", "zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf")); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, Consts.UTF_8)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 创建数据 (create poi) public void demo8() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://api.map.baidu.com/geodata/v3/poi/create"); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("geotable_id", "153944")); nameValuePairs.add(new BasicNameValuePair("title", "好嫂子")); nameValuePairs.add(new BasicNameValuePair("address", "海淀区建材城西路xx号")); nameValuePairs.add(new BasicNameValuePair("latitude", "39.899552")); nameValuePairs.add(new BasicNameValuePair("longitude", "116.647367")); nameValuePairs.add(new BasicNameValuePair("coord_type", "3")); nameValuePairs.add(new BasicNameValuePair("ak", "zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf")); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 查询指定条件数据(poi) public void demo9() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet( "http://api.map.baidu.com/geodata/v3/poi/list?geotable_id=153944&ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf"); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 查询指定id的数据(poi) public void demo10() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet( "http://api.map.baidu.com/geodata/v3/poi/detail?id=1822675338&geotable_id=153944&ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf"); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test // 修改数据 (update poi) public void demo11() throws IOException { HttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://api.map.baidu.com/geodata/v3/poi/update"); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("id", "1822675338")); nameValuePairs.add(new BasicNameValuePair("geotable_id", "153944")); nameValuePairs.add(new BasicNameValuePair("title", "好嫂子")); nameValuePairs.add(new BasicNameValuePair("address", "海淀区建材城西路xx号")); nameValuePairs.add(new BasicNameValuePair("latitude", "40.066269")); nameValuePairs.add(new BasicNameValuePair("longitude", "116.353776")); nameValuePairs.add(new BasicNameValuePair("coord_type", "3")); nameValuePairs.add(new BasicNameValuePair("ak", "zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf")); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, Consts.UTF_8)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); System.out.println(EntityUtils.toString(httpEntity)); } @Test public void demoX() { System.out.println("u53c2u6570u5fc5u9700"); } }

    2.BaiduMapCloudSearch

    package cn.itcast.map;
    
    import java.io.IOException;
    import java.net.URLEncoder;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    import org.junit.Test;
    
    // 云检索 
    public class BaiduMapCloudSearchTest {
        @Test
        // 周边检索
        public void demo1() throws IOException {
            HttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/geosearch/v3/nearby?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&geotable_id=153944&location=116.647367,39.899552&radius=1000");
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    
        @Test
        // 本地检索
        public void demo2() throws IOException {
            HttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/geosearch/v3/local?region=北京&ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&geotable_id=153944&location=116.647367,39.899552&radius=1000");
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    
        @Test
        // 云地理编码
        public void demo3() throws IOException {
            String address = URLEncoder.encode("好嫂子", "utf-8");
            String url = "http://api.map.baidu.com/cloudgc/v1?geotable_id=153944&ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&address="
                    + address;
            System.out.println(url);
    
            HttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(url);
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    }

    3.BaiduMapWebServiceTest

    package cn.itcast.map;
    
    import java.io.IOException;
    import java.net.URLEncoder;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    import org.junit.Test;
    
    // web开放服务 
    public class BaiduMapWebServiceTest {
        @Test
        // Place Suggestion API
        public void demo1() throws IOException {
            HttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/place/v2/suggestion?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&region=全国&q=和平&output=json");
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    
        @Test
        // 地理编码 api
        public void demo2() throws IOException {
            HttpClient httpClient = HttpClients.createDefault();
            String address = URLEncoder.encode("北京市海淀区上地十街10号", "utf-8");
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/geocoder/v2/?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&output=json&address="
                            + address);
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    
        @Test
        // 路线规划距离和行驶时间
        public void demo3() throws IOException {
            HttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/routematrix/v2/riding?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&output=json&origins=40.056878,116.30815&destinations=40.063597,116.364973");
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    
        @Test
        // 路线规划
        public void demo4() throws IOException {
            HttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/direction/v2/transit?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&output=json&origin=40.056878,116.30815&destination=40.063597,116.364973");
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    
        @Test
        // ip高精度定位
        public void demo5() throws IOException {
            HttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/highacciploc/v1?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&qterm=pc&callback_type=json&coord=bd09ll");
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    
        @Test
        // 转换坐标
        public void demo6() throws IOException {
            HttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/geoconv/v1/?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&output=json&coords=114.21892734521,29.575429778924");
    
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }
    }

     4.周边检索( 基于 JavaScript 访问 LBS 云服务)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>周边检索 </title>
            <script type="text/javascript" src="js/jquery.js" ></script>
            <script type="text/javascript">
                $.getJSON("http://api.map.baidu.com/geosearch/v3/nearby?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&geotable_id=153944&q=好嫂子&location=116.395884,39.932154&radius=5000&callback=?",function(data){
                    console.log(data);
                });
            </script>
        </head>
        <body>
        </body>
    </html>

    5.本地检索( 基于 JavaScript 访问 LBS 云服务)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>本地检索 </title>
            <script type="text/javascript" src="js/jquery.js" ></script>
            <script type="text/javascript">
                $.getJSON("http://api.map.baidu.com/geosearch/v3/local?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&geotable_id=153944&q=好嫂子&region=北京市&callback=?",function(data){
                    console.log(data);
                });
            </script>
        </head>
        <body>
        </body>
    </html>

    6.云地理检索 ( 基于 JavaScript 访问 LBS 云服务)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>云地理编码</title>
            <script type="text/javascript" src="js/jquery.js" ></script>
            <script type="text/javascript">
                var address = encodeURIComponent("金燕龙办公楼");
                $.getJSON("http://api.map.baidu.com/cloudgc/v1?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf&address="+address+"&callback=?",function(data){
                    console.log(data);
                });
            </script>
        </head>
        <body>
        </body>
    </html>
  • 相关阅读:
    MOSS中的User的Title, LoginName, DisplayName, SID之间的关系
    如何在Network Monitor中高亮间隔时间过长的帧?
    SharePoint服务器如果需要安装杀毒软件, 需要注意什么?
    如何查看SQL Profiler? 如何查看SQL死锁?
    什么是Telnet
    The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain.
    Windows SharePoint Service 3.0的某个Web Application无搜索结果
    网络连接不上, 有TCP错误, 如果操作系统是Windows Server 2003, 请尝试一下这里
    在WinDBG中查看内存的命令
    The virtual machine could not be started because the hypervisor is not running
  • 原文地址:https://www.cnblogs.com/wwwzzz/p/8109424.html
Copyright © 2011-2022 走看看