java类方法中百度地图API

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java类方法中百度地图API相关的知识,希望对你有一定的参考价值。

不在jsp文件中调用 是java类中需要用到百度地图的一些功能

百度地图Web服务API为开发者提供http接口,即开发者通过http形式发起检索请求,获取返回json或xml格式的检索数据。
api官网说明链接:

http://developer.baidu.com/map/webservice.htm

1、可用接口列举:
获取相关地址提示 place suggestion
http://api.map.baidu.com/place/v2/suggestion?query=水杉&region=成都&output=json&ak=42b8ececa9cd6fe72ae4cddd77c0da5d

2、获取坐标 geocoding

http://api.map.baidu.com/geocoder?address=锦江区菱安路299号&output=json&key=42b8ececa9cd6fe72ae4cddd77c0da5d

http://api.map.baidu.com/place/v2/search?ak=42b8ececa9cd6fe72ae4cddd77c0da5d&output=json&query=蓝光coco金沙&page_size=10&page_num=0&scope=1&region=成都

"status":0,
"message":"ok",
"total":2,
"results":[

"name":"蓝光COCO金沙",
"location":
"lat":30.687544,
"lng":103.996691
,
"address":"西三环外金沙西源大道(IT大道旁)",
"uid":"223992992c5ee7e0841541df"
,

"name":"蓝光COCO金沙2期",
"location":
"lat":30.681123,
"lng":103.991123
,
"address":"青羊区金沙IT大道旁",
"uid":"b7bb5abb1cd4982213293580"

]


3、设施导航
http://api.map.baidu.com/place/v2/search?ak=42b8ececa9cd6fe72ae4cddd77c0da5d&output=json&query=图书馆&page_size=20&page_num=0&scope=2&region=成都

4、java测试类:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

public class LocationUtil

private static final String BAIDU_APP_KEY = "42b8ececa9cd6fe72ae4cddd77c0da5d";

/**
* 返回输入地址的经纬度坐标 key lng(经度),lat(纬度)
*/
public static Map<String, String> getLatitude(String address)
try
// 将地址转换成utf-8的16进制
address = URLEncoder.encode(address, "UTF-8");
// 如果有代理,要设置代理,没代理可注释
// System.setProperty("http.proxyHost","192.168.172.23");
// System.setProperty("http.proxyPort","3209");

URL resjson = new URL("http://api.map.baidu.com/geocoder?address="
+ address + "&output=json&key=" + BAIDU_APP_KEY);
BufferedReader 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);
if(str!=null&&!str.equals(""))
Map<String, String> map = null;
int lngStart = str.indexOf("lng\\":");
int lngEnd = str.indexOf(",\\"lat");
int latEnd = str.indexOf(",\\"precise");
if (lngStart > 0 && lngEnd > 0 && latEnd > 0)
String lng = str.substring(lngStart + 5, lngEnd);
String lat = str.substring(lngEnd + 7, latEnd);
map = new HashMap<String, String>();
map.put("lng", lng);
map.put("lat", lat);
return map;


catch (Exception e)
e.printStackTrace();

return null;


public static void main(String args[])

Map<String, String> map = LocationUtil.getLatitude("成都 高新西区西区大道1398号");
if (null != map)
System.out.println(map.get("lng"));
System.out.println(map.get("lat"));


参考技术A 那具体要看百度开了什么接口给你了,你要仔细研究下帮助文档。本回答被提问者和网友采纳 参考技术B 百度地图的开放接口好像都是js的吧~没具体研究过

java调用百度地图api,展示世界地图

利用java调用百度地图api,展示世界地图

1.去百度地图官方登录,没有账号的可以创建一个,无需复杂步骤

百度地图官方网址:https://lbsyun.baidu.com/

首先登陆或者注册
在这里插入图片描述
点击控制台
在这里插入图片描述
点击应用管理–>我的应用–>创建应用
在这里插入图片描述
个人测试的话,应用类型选择浏览器端就行了,Referer白名单只写一个*就行
在这里插入图片描述
然后就出现我们刚才创建的应用,注意这个AK密钥,一会用得到
在这里插入图片描述

2.创建页面直接复制代码

直接复制代码,把ak密钥改成自己申请创建的即可

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>地图展示</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <style>
    body,
    html,
    #container {
        overflow: hidden;
        width: 100%;
        height: 100%;
        margin: 0;
        font-family: "微软雅黑";
    }
    .info {
        z-index: 999;
        width: auto;
        min-width: 22rem;
        padding: .75rem 1.25rem;
        margin-left: 1.25rem;
        position: fixed;
        top: 1rem;
        background-color: #fff;
        border-radius: .25rem;
        font-size: 14px;
        color: #666;
        box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);
    }
    </style>
    <script src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=您的密钥"></script>
</head>
<body>
    <div class = "info">最新版GL地图命名空间为BMapGL, 可按住鼠标右键控制地图旋转、修改倾斜角度。</div>
    <div id="container"></div>
</body>
</html>
<script>
var map = new BMapGL.Map('container'); // 创建Map实例
map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 12); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
</script>

3.查看效果

在这里插入图片描述

4.容易出现的问题,解决方案

1.如果弹出以下内容,就把自己的ak密钥写到代码对应的位置就行
在这里插入图片描述
2.中文乱码,如果出现以下内容,在head里面添加以下代码

	 <!-- 防止乱码 -->
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

在这里插入图片描述

以上是关于java类方法中百度地图API的主要内容,如果未能解决你的问题,请参考以下文章

如何在网页中调用百度地图api

百度地图API标注+时间轴组合

百度地图的api接口可以免费随意调用吗

吐槽贴:百度地图 api 封装 的实用功能 [源码下载]

百度地图点击地图显示地址详情的默认方法怎么关闭,去掉百度地图api图标信息

百度地图api 怎么禁止百度自己的InfoWindow