zoukankan      html  css  js  c++  java
  • 百度地图API简单应用

          在做移动端应用时经常用到百度地图API,百度API有强大的示例和文档,开发之前去百度相关网站注册密钥,很块博主只花了几分钟

    百度地图API范例

    百度地图API文档说明

    例子1:输入特定关键字绘制地图标识结果:

    先实例化需要的类

        // 创建Map实例
        var map = new BMap.Map("l-map");   
        var localSearch = new BMap.LocalSearch(map);

    注册事件

     $("#btnSearch").click(function () {
                var content = $("#txtSearch").val();
                searchByStationName(content);
    
            });

    函数

    //通过关键字查询经纬度
        function searchByStationName(searchContent) {
            map.clearOverlays();//清空原来的标注
            //要查找的内容
            var keyword = searchContent;
            localSearch.setSearchCompleteCallback(function (searchResult) {
                //获得需要得到的坐标
                var poi = searchResult.getPoi(0);
                if (!poi)
                {
                    alert("百度API没有搜索到该地址");
                }
                //设置中心点
                map.centerAndZoom(poi.point, 13);
                // 创建标注,为要查询的地方对应的经纬度
                var marker = new BMap.Marker(new BMap.Point(poi.point.lng, poi.point.lat));
                //在地图上添加标识
                map.addOverlay(marker);
                //点击标识后显示的内容
                var content = "你要查找的地方<br/><br/>经度:" + poi.point.lng + "<br/>纬度:" + poi.point.lat;
                //定义信息窗口
                var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>" + content + "</p>");
                //添加点击事件监听
                marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); });         
            });
            localSearch.search(keyword);
        }

    效果:

    例子2:将标识的颜色改为蓝色

          其实这个是个很简单的功能,只是在API界面我没找到,那好吧自己写个例子

     // 创建Map实例
            var map = new BMap.Map("l-map");
            //获取当前浏览器坐标
            var geolocation = new BMap.Geolocation();
            //获得当前浏览器在百度地图上的经纬度
            geolocation.getCurrentPosition(function (r) {
                //获取成功
                if (this.getStatus() == BMAP_STATUS_SUCCESS) {
                    //创建图标
                    var myIcon = new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), {
                        offset: new BMap.Size(10, 25),
                        imageOffset: new BMap.Size(0, 0 - 10 * 25)
                    });
                    //创建标识
                    var mk = new BMap.Marker(r.point, { icon: myIcon });
                    //将标识加入地图
                    map.addOverlay(mk);              
                    //设置中心点
                    map.centerAndZoom(new BMap.Point(r.point.lng,r.point.lat), 13);

    其实关键就是这句

    效果如下

    这是因为其实这就是一个png的图片

    所以如果不喜欢蓝色的标识 只需要将参数10 替换其他即可

  • 相关阅读:
    RAID技术
    Mysql的用户基本操作
    LNMP之Php的安装配置
    java 实现图片拼接
    java 实现Serv-U FTP 和 SFTP 上传 下载
    Image合并添加文字内容
    AOP切面用于系统日志
    网页评论实现
    java web 实体类生成
    java接口调试思想
  • 原文地址:https://www.cnblogs.com/CallmeYhz/p/5894710.html
Copyright © 2011-2022 走看看