1.获的属于自己的key
1.打开百度地图api
打开网址:百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com)
由于是在code上编写的网页版,所以点击JavaScript API
2.进去之后点击开发指南获取账号
按照使用方法注册获取自己的百度账号,并获取自己的服务密匙
2.示例DEMO
关于百度地图开发的所以示例,全部都在示例DEMO中,可根据需求来进行使用
3.code源码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport"
content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,u ser-scalable=no">
<!--<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=gXLkbXzN7kOR22S6iszA2Zfe6yIkK0s4"></script>-->
<script type="text/javascript"
src="http://api.map.baidu.com/api?v=3.0&ak=自己的开发密实"></script>
<link rel="stylesheet" type="text/css" href="css/reset.css" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<script type="text/javascript" src="js/jquery-3.2.1.js"></script>
<title>回收服务</title>
</head>
<body>
<form id="form1">
<!--顶部操作栏-->
<div class="nav">
<span>
<img src="img/icon1.png" />
</span>
<span class="active">奢侈品</span>
<span>家电</span>
<span>烟酒</span>
<span>家具</span>
<span οnclick="window.location.href = 'tel://10000'">咨询
<img src="img/icon2.png" />
</span>
</div>
<!--地图模块-->
<div class="map" id="map" style="font-size: 2rem;"></div>
<!--地图上面的 导航页签-->
<div class="footer">
<p class="footer_title">
<span>搭电服务</span>,预计费用:<span>¥ <span id="money"></span> 元起</span>
<i οnclick="$('.clover').show()">费用说明></i>
</p>
<p class="footer_address">
<span>●</span>
<span id="addressText">河南省郑州市</span>
</p>
<p class="footer_address1">
<span>●</span>
<input type="text" placeholder="请输入拖车目的地" />
</p>
<div class="addList">
<div>
<p><img src="img/icon5.png" /> <span> 车在地库</span></p><br />
<p style="margin-top: 0.08rem;color: gray;">¥ 100</p>
</div>
<div>
<p><img src="img/icon6.png" /> <span> 需要附轮</span></p><br />
<p style="margin-top: 0.08rem;color: gray;">¥ 100</p>
</div>
</div>
<div class="btn" id="nextBtn">
提交
</div>
</div>
<!--费用说明-->
<div class="clover">
<div>
<h3>拖车报价</h3>
<p>拖车¥198(15公里内);超过15公里以后,10元/公里</p>
<p>以上收费仅包含救援服务费,救援过程中产生的费用需要您承担,如有产生费用,请在服务完成后现场支付给师傅,包含:</p>
<p>1.救援过程中产生的过路、过桥、停车等费用;</p>
<p>2.换胎如需购置轮胎,需要您承担购置费;</p>
<p>3.地库和加附轮各需额外支付100元费用;</p>
<p>取消收费规则:</p>
<p>1.报案成功后10分钟之内可免费取消</p>
<p>2.超过10分钟后师傅到达现场前,将收取基础费用的50%作为服务师傅的辛苦费;</p>
<p>3.师傅到达现场后,取消不退费;</p>
<span>24小时救援客服热线:<a href="tel:123456">123456</a></span> <br />
<span>服务监督电话:<a href="tel:123456">123456</a></span>
<img src="img/icon4.png" οnclick="$('.clover').hide()" />
</div>
</div>
<!--点击 首页 "头像" 的侧滑菜单-->
<div class="left">
<div class="left_main">
<div id="login">
</div>
<p>
<span οnclick="location.href='order'">我的订单</span>
<img src="img/icon8.png" />
</p>
<p οnclick="alert('钱到位,啥事儿都好办!')">
<span>救援服务协议</span>
<img src="img/icon8.png" />
</p>
<p>
<span>救援客服热线 <a style="color: blue;position: relative;top: -0.06rem;margin-left: 0.1rem;"
href="tel:110">123456</a></span>
<img src="img/icon8.png" />
</p>
</div>
</div>
<input id="address" name="address" type="hidden" value="">
<input id="lng" name="lng" type="hidden" value="">
<input id="lat" name="lat" type="hidden" value="">
<input type="hidden" name="contents" id="contents" value="搭电" />
<input type="hidden" name="attached" id="attached" value="" />
<!-- <input type="hidden" name="phone" id="phone"/> -->
<input type="hidden" name="cost" id="cost" value="" />
</form>
</body>
<script type="text/javascript">
var point = new BMap.Point(113.838736,34.728955); // 指定厚朴it学院坐标点(当作 公司的 出车所在地)
// var point = new BMap.Point(113.836953, 34.728566); // 指定坐标点(当作 公司的 出车所在地)
// var point = new BMap.Point(113.836953, 34.728566); // 指定坐标点(当作 公司的 出车所在地)
// var point = new BMap.Point(113.836953, 34.728566); // 指定坐标点(当作 公司的 出车所在地)
// var point = new BMap.Point(113.836953, 34.728566); // 指定坐标点(当作 公司的 出车所在地)
var map = new BMap.Map("map");// 创建地图实例
var point = new BMap.Point(113.838736,34.728955); // 指定厚朴it学院坐标点(当作 公司的 出车所在地)
map.centerAndZoom(point, 17);// 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
//公司地点
var json_data =[[113.837427,34.72969],[113.837975,34.728837],[113.839206,34.731307],[113.83996,34.728837]]
//创建一个list集合
var pointArray= new Array();
for (var i = 0; i < json_data.length; i++) {
//将公司地点显示到地图中
var maker = new BMap.Marker(new BMap.Point(json_data[i][0],json_data[i][1]));
map.addOverlay(maker);
//将公司经纬度拼接成为字符串
pointArray.push(json_data[i][0]+","+json_data[i][1]);
}
// 添加带有定位的导航控件
var navigationControl = new BMap.NavigationControl({
// 靠左上角位置
anchor: BMAP_ANCHOR_TOP_LEFT,
// LARGE类型
type: BMAP_NAVIGATION_CONTROL_LARGE,
// 启用显示定位
enableGeolocation: true
});
map.addControl(navigationControl);
// 添加定位控件
var geolocationControl = new BMap.GeolocationControl();
geolocationControl.addEventListener("locationSuccess", function (e) {
// 定位成功事件
var address = '';
address += e.addressComponent.province;
address += e.addressComponent.city;
address += e.addressComponent.district;
address += e.addressComponent.street;
address += e.addressComponent.streetNumber;
alert("当前定位地址为111111111111111111:" + address);
});
geolocationControl.addEventListener("locationError", function (e) {
// 定位失败事件
alert(e.message);
});
map.addControl(geolocationControl); // 添加 定位控制条
var marker2 = new BMap.Marker(point); // 创建标注
map.addEventListener("click", showInfo); // 地图的 点击事件, 点击后 创建一个 红色的点点
var name;
var lng = 1.0;
var lat = 1.0;
function showInfo(e) {
map.removeOverlay(marker2); // 每点击一次, 删除之前 点点标注
document.getElementById("lng").value = e.point.lng; /// 得到新的 经纬度
lng=e.point.lng;
document.getElementById("lat").value = e.point.lat; /// 得到新的 经纬度
lat=e.point.lat;
marker2 = new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat)); // 把新的坐标系 添加给 点点标注
map.addOverlay(marker2); /// 地图添加新的 坐标的点点标注
var point = new BMap.Point(e.point.lng, e.point.lat); //获取当前地理名称
var gc = new BMap.Geocoder();
gc.getLocation(point, function (rs) {
var addComp = rs.addressComponents;
name = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber + ",";
//alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
});
console.log("发送 ajax 到后台,, 去计算2点之间的距离, 根据 距离的长短 , 算出 人民币, 渲染到 前端的 金钱的标签里")
//顾客 的 坐标 m n 公司的坐标 x y
$.ajax({
type: 'post',
url: 'http://127.0.0.1:9007/api/customer/getMoney',
data: {
'm':lng,
'n':lat,
'xy':pointArray
},
dataType: 'json',
success: function(res) {
if (res.code == 200) {
console.log(res.data)
}
},
})
}
</script>
</html>
4.后台代码:
package com.xiexin.controller; import com.xiexin.bean.Orders; import com.xiexin.service.OrdersService; import com.xiexin.util.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("/api/customer") @CrossOrigin(origins = "*") public class CustomerController { @Autowired private OrdersService ordersService; // 计算上门服务的金额。 千米数 / 100 得出 money @RequestMapping("/getMoney") public Map getMoney(double m, double n, @RequestParam("xy[]")List<String> json_data) { List<Integer> moneyList = new ArrayList<>(); System.out.println("json_data.size"+json_data.size()); for (int i = 0; i < json_data.size(); i++) { double x=Double.parseDouble(json_data.get(i).split(",")[0]); double y=Double.parseDouble(json_data.get(i).split(",")[1]); double algorithm = MapUtils.algorithm(m, n, x, y); int money = (int) (algorithm / 100); moneyList.add(money); } System.out.println("moneyMap = " + moneyList); Map codeMap = new HashMap(); codeMap.put("code", 200); codeMap.put("msg", "计算成功"); codeMap.put("data", moneyList); return codeMap; } // 提交订单 @RequestMapping("/subOrders") public Map subOrders(Orders orders) { orders.setStatus("0"); int i = ordersService.insertSelective(orders); Map codeMap = new HashMap(); if (i==1){ codeMap.put("code",200); codeMap.put("msg","订单提交成功"); return codeMap; }else{ codeMap.put("code",40001); codeMap.put("msg","订单提交失败"); return codeMap; } } }