code编写百度地图添加目标点,并计算距离位置金额

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;
        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值