Web开发整合百度地图

Web开发整合百度地图

百度地图开放平台

1.申请Baidu map AK

点击标题超链接进入申请AK界面,填写以下信息

  1. 应用名称
  2. 应用类型
  3. Referer白名单
    在这里插入图片描述
2.获取百度地图AK

点击标题超链接进入我的应用界面,复制申请好的AK,注意:Web开发请选择浏览器端类型的应用类别。
在这里插入图片描述

3.示例中心

点击标题超链接进入百度地图示例中心
在这里插入图片描述
此页面有大量参考示例,接下开的开发大家可以参照百度地图示例中心给出的demo进行拓展。

4.一个小demo
  1. 在idea中新建一个html文件
    在这里插入图片描述
  2. 填写AK后用浏览器打开html,能显示出地图则说明AK申请成功

在这里插入图片描述

倘若出现以下报错提示信息,说明密钥填写错误。
在这里插入图片描述
先从以下三个方面检查:

  1. 检查密钥应用类型
  2. 白名单是否填写成 *
  3. 密钥是否复制正确

三个方面均确认无误后,若访问html仍无法正常显示百度地图,还有一个可能是百度服务器还没通过用户密钥申请,请过几个小时后再次尝试(本人遇到的就是这种情况🙈)

5.以黑马项目一为例整合百度地图

本次黑马项目添加了现实百度地图功能,用户在在生成出口报单的时候会显示出对应报单的航线。

先上效果图:
在这里插入图片描述

点击提交后显示航线地图
在这里插入图片描述

前端jsp

请添加AK密钥

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <title>添加弧线</title>
    <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
    <script type="text/javascript" src="//api.map.baidu.com/library/CurveLine/1.5/src/CurveLine.min.js"></script>
    <style type="text/css">
        html,body{
            width:100%;
            height:100%;
            margin:0;
            overflow:hidden;
            font-family:"微软雅黑";
        }
    </style>
    <script src="${ctx}/plugins/jQuery/jquery-2.2.3.min.js"></script>
</head>
<body>
<div style="width:100%;height:100%;border:1px solid gray" id="container"></div>
<input type="hidden" id="shipmentW" value="${shipment.wei}">
<input type="hidden" id="shipmentJ" value="${shipment.jing}">
<input type="hidden" id="destinationW" value="${destination.wei}">
<input type="hidden" id="destinationJ" value="${destination.jing}">
</body>
</html>
<script type="text/javascript">
    let sw = $("#shipmentW").val();
    let sj = $("#shipmentJ").val();
    let dw = $("#destinationW").val();
    let dj = $("#destinationJ").val();
    // 百度地图API功能
    var map = new BMap.Map("container");
    map.centerAndZoom(new BMap.Point(118.454, 32.955), 6);
    map.enableScrollWheelZoom();
    var beijingPosition=new BMap.Point(sj,sw),
        hangzhouPosition=new BMap.Point(dj,dw);
        /*taiwanPosition=new BMap.Point(121.491121,25.127053);*/
    var points = [beijingPosition,hangzhouPosition];

    var curve = new BMapLib.CurveLine(points, {strokeColor:"blue", strokeWeight:3, strokeOpacity:0.5}); //创建弧线对象
    map.addOverlay(curve); //添加到地图中
    curve.enableEditing(); //开启编辑功能
</script>

controller层

package cn.itcast.web.controller.map;

import cn.itcast.domain.city.City;
import cn.itcast.service.cargo.CityService;
import cn.itcast.web.controller.BaseController;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/map")
public class MapController extends BaseController {

    @Reference
    private CityService cityService;

    @RequestMapping("/toView")
    public String  toView() throws Exception {//装运港和目标港口
        String shipmentPort = (String) session.getAttribute("shipmentPort");
        String destinationPort = (String) session.getAttribute("destinationPort");

        City shipment = cityService.findLocation(shipmentPort);
        City destination = cityService.findLocation(destinationPort);

        request.setAttribute("shipment",shipment);
        request.setAttribute("destination",destination);
        return "/city/city";
    }
}

service层

接口

package cn.itcast.service.cargo;

import cn.itcast.domain.city.City;
import org.springframework.core.codec.EncodingException;

import java.io.UnsupportedEncodingException;

public interface CityService {
    //根据城市名查询经纬度
    City findLocation(String cityName) throws Exception;
}

实现类

package cn.itcast.service.cargo.impl;

import cn.itcast.dao.city.CityDao;
import cn.itcast.domain.city.City;
import cn.itcast.domain.city.CityExample;
import cn.itcast.service.cargo.CityService;
import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.List;

@Service
public class CityServiceImpl implements CityService {

    @Autowired
    private CityDao cityDao;

    @Override
    public City findLocation(String cityName) throws Exception {
        CityExample cityExample = new CityExample();
        cityExample.createCriteria().andCityEqualTo(cityName);
        List<City> cities = cityDao.selectByExample(cityExample);
        City city = cities.get(0);
        return city ;
    }
}

dao层

接口

package cn.itcast.dao.city;

import cn.itcast.domain.city.City;
import cn.itcast.domain.city.CityExample;

import java.util.List;

public interface CityDao {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table city
     *
     * @mbg.generated
     */
    int insert(City record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table city
     *
     * @mbg.generated
     */
    int insertSelective(City record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table city
     *
     * @mbg.generated
     */
    List<City> selectByExample(CityExample example);
}

映射xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.itcast.dao.city.CityDao">
  <resultMap id="BaseResultMap" type="cn.itcast.domain.city.City">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    <result column="city" jdbcType="VARCHAR" property="city" />
    <result column="jing" jdbcType="VARCHAR" property="jing" />
    <result column="wei" jdbcType="VARCHAR" property="wei" />
  </resultMap>
  <sql id="Example_Where_Clause">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    <where>
      <foreach collection="oredCriteria" item="criteria" separator="or">
        <if test="criteria.valid">
          <trim prefix="(" prefixOverrides="and" suffix=")">
            <foreach collection="criteria.criteria" item="criterion">
              <choose>
                <when test="criterion.noValue">
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue">
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue">
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue">
                  and ${criterion.condition}
                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    city, jing, wei
  </sql>
  <select id="selectByExample" parameterType="cn.itcast.domain.city.CityExample" resultMap="BaseResultMap">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    select
    <if test="distinct">
      distinct
    </if>
    <include refid="Base_Column_List" />
    from city
    <if test="_parameter != null">
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null">
      order by ${orderByClause}
    </if>
  </select>
  <insert id="insert" parameterType="cn.itcast.domain.city.City">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    insert into city (city, jing, wei
      )
    values (#{city,jdbcType=VARCHAR}, #{jing,jdbcType=VARCHAR}, #{wei,jdbcType=VARCHAR}
      )
  </insert>
  <insert id="insertSelective" parameterType="cn.itcast.domain.city.City">
    <!--
      WARNING - @mbg.generated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    insert into city
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="city != null">
        city,
      </if>
      <if test="jing != null">
        jing,
      </if>
      <if test="wei != null">
        wei,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="city != null">
        #{city,jdbcType=VARCHAR},
      </if>
      <if test="jing != null">
        #{jing,jdbcType=VARCHAR},
      </if>
      <if test="wei != null">
        #{wei,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
</mapper>

domain

package cn.itcast.domain.city;

import java.io.Serializable;

public class City implements Serializable {
    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column city.city
     *
     * @mbg.generated
     */
    private String city;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column city.jing
     *
     * @mbg.generated
     */
    private String jing;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column city.wei
     *
     * @mbg.generated
     */
    private String wei;

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column city.city
     *
     * @return the value of city.city
     *
     * @mbg.generated
     */
    public String getCity() {
        return city;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column city.city
     *
     * @param city the value for city.city
     *
     * @mbg.generated
     */
    public void setCity(String city) {
        this.city = city == null ? null : city.trim();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column city.jing
     *
     * @return the value of city.jing
     *
     * @mbg.generated
     */
    public String getJing() {
        return jing;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column city.jing
     *
     * @param jing the value for city.jing
     *
     * @mbg.generated
     */
    public void setJing(String jing) {
        this.jing = jing == null ? null : jing.trim();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column city.wei
     *
     * @return the value of city.wei
     *
     * @mbg.generated
     */
    public String getWei() {
        return wei;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column city.wei
     *
     * @param wei the value for city.wei
     *
     * @mbg.generated
     */
    public void setWei(String wei) {
        this.wei = wei == null ? null : wei.trim();
    }
}

Memorial Day is 509 days
I miss you
xiaokeai

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值