• 百度提供的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>
  • 相关阅读:
    &lt;Android&gt;greenrobot-EventBus,guava-Event Bus的异步实现
    MySQL Study之--MySQL用户及权限管理
    关于Apacheserver的訪问控制
    Jquery改动页面标题title其他JS失效
    P3742 umi的函数
    P3717 [AHOI2017初中组]cover
    P2261 [CQOI2007]余数求和
    P1423 小玉在游泳
    P1888 三角函数
    3295 落单的数 九章算法面试题
  • 原文地址:https://www.cnblogs.com/wwwzzz/p/8109424.html
Copyright © 2020-2023  润新知