高德地图点击查询信息定位到点+异步加载点+点击点显示信息窗口

一:配置地图

根据官方步骤申请key

可以异步或者同步调用地图,此处Wie同步

html

  •  <div id="container" tabindex="0"></div>

js

 //设置中心位置,显示当前城市的中心点
    var map = new AMap.Map(‘container‘, {
        resizeEnable: true,
        //center: [117.031479, 36.66314],//定位的济南//center缺省则根据IP自动获取中心
        zoom: 11
    });

  不设置center可以根据ip自动获取中心位置

二:配置地图标记点

    var style = new AMap.Icon({
        size: new AMap.Size(30, 40),  //图标大小
        image: "img/map_icon.png",//设置点图标图像
        imageSize: new AMap.Size(25, 28),
        imageOffset: new AMap.Pixel(0, 0)
    });
    //显示窗口
   var infoWindow = new AMap.InfoWindow({
        draggable: true,  //是否可拖动
        content: "",
        isCustom: true,
        //使用自定义窗体
        offset: new AMap.Pixel(16, -15) //基点指向marker的头部位置
    });
    
        var markerList = [];//存放地图的点信息,方便点击时加载

        //清除地图上的信息
        map.remove(markers);
        map.clearInfoWindow();

        $.post(‘ashx/dealHandler.ashx‘,
            {
                action: "getPoints",
                page: page,//当前页码
                pageSize: pageSize,//每页页码(此处取全局参数)
                city: $("#city").val(),
                searchText: $(".ipt_search").val()
            },
            function (result) {
                if (result.total > 0) {//用模板加载信息
                    var ht = template("tmp-list1",
                        {
                            Data: result.rows
                        });
                    $("#project_item").empty().append(ht);//模板赋值
                    $("#countAll").text(result.total);
                    //获取分页数据
                    GetLayuiPageList(result.total, page, pageSize);

                   //左侧查询信息的点击事件,要在绘制完成后加载
                    $(‘.dz_text‘).on(‘click‘, function () {

                        var idStr = this.dataset.id;
                        markerList.map(function(value,index){

                            if (value.id == idStr) {
                               //获取点击点的marker
                                var tpmk = value.marker_o;
                                if (tpmk) {
                                    //触发点击
                                    tpmk.emit(‘click‘, { target: tpmk });
                                    //设置中心点和缩放比例
                                    map.setZoomAndCenter(15,
                                    tpmk.getPosition());
                                }
                            }
                        })
                    })
                    //在地图标记点
                    var marker;
                    var firstlng,firstlat;
                    for (var i = 0 ; i < result.rows.length; i++) {
                        if (i == 0) {
                            firstlng = result.rows[i].ca_lng;
                            firstlat = result.rows[i].ca_lat;
                        }
                        var data = [result.rows[i].ca_lng, result.rows[i].ca_lat];
                        marker = new AMap.Marker({ map: map, position: data, zIndex: 11, icon: style });
                        marker.setMap(map);
                        marker.ca_info_id = result.rows[i].ca_info_id;
                        marker.ca_info_name = result.rows[i].ca_info_name;
                        marker.ca_info_address = result.rows[i].ca_info_address;
                        marker.ca_info_phone = result.rows[i].ca_info_phone;                        //添加点击监听事件
                        AMap.event.addListener(marker, ‘click‘, setmarkerclick);
                        marker.emit(‘click‘, { target: marker });
                        var vv = new markerStruct();
                        vv.id = result.rows[i].ca_info_id;
                        vv.marker_o = marker;
                        markerList.push(vv);
                        markers.push(marker);
                    }

                    //for-end
                    //自适应多个标记点
                    map.setFitView();
                } else {
                    $("#project_item").empty().append("");//模板赋值
                    $("#countAll").text("0");
                    //获取分页数据
                    GetLayuiPageList(0, page, pageSize);
                }
            }, ‘json‘);
//点击事件,显示窗口
  function setmarkerclick(e) {

        infoWindow.setContent("<div name=‘zt_min_box‘class=‘zt_min_box‘><h3 class=‘map_bt‘>" + e.target.ca_info_name + "</h3>" +
                                                "<div class=‘map_text‘><span>地址:" + e.target.ca_info_address + "</span>" +
                                                "<span>电话:" + e.target.ca_info_phone + "</span>" +
                                                "<span><a class=‘yangshi‘ href=‘carrierDetail.aspx?carrierid=" + e.target.ca_info_id + "‘>详细信息</a></span>"
                                                +"</div><a href=‘#‘onclick=\"javascript:turnoff(‘zt_min_box‘)\" class=‘close‘>关闭</a></div><div class=‘tag-boder‘><div class=‘tag‘></div></div> ");
        infoWindow.open(map, e.target.getPosition());
    }
    //layui分页通用封装
    //count:总页数 curr: 起始当前页 limit:每页显示条数
    function GetLayuiPageList(count, curr, limit) {
        layui.use([‘laypage‘, ‘layer‘], function () {
            var laypage = layui.laypage, layer = layui.layer;
            laypage.render({
                elem: ‘pagination‘,//分页存放的容器Id 注:不需要"#"
                count: count,
                theme: ‘#1E9FFF‘,
                limit: limit,
                curr: curr,
                //first: ‘首页‘,
                //last: ‘尾页‘,
                prev: ‘<em>←</em>‘,
                next: ‘<em>→</em>‘,
                layout: [ ‘prev‘, ‘page‘, ‘next‘],
                jump: function (obj, first) {
                    //非首次加载处理
                    if (!first) {
                        GetProjectInfoList(obj.curr);
                    }

                }
            });

        });

    }

原文地址:https://www.cnblogs.com/janeaiai/p/10541680.html

时间: 2024-07-30 11:48:03

高德地图点击查询信息定位到点+异步加载点+点击点显示信息窗口的相关文章

树形ztree 与angularjs结合,实现下级数据异步加载,点击复选框 填写到输入框里

html: <input value="" type="text" id="river_cut"   onclick="showMenu('river_cut_drop');" class=" btn btn-default  dropdown-toggle w200 input_ao" style="text-align:left;" /> <div class=&q

广告banner:手动滑动切换,自动切换,点击跳转,异步加载网络图片

效果图: 该banner功能有自动切换图片,点击图片可以自定义事件,手动滑动切换,异步加载图片 代码说话: 布局文件: <!-- 广告位 --> <FrameLayout android:id="@+id/new_recommend" android:layout_width="fill_parent" android:layout_height="wrap_content" > <com.cyou.cmall.ui

ajax异步加载查询数据库

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://w

Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取

<工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短评信息,一共20条.一般我们加载大量数据的时候,都会做分页,但是这个页面没有,只有一个滚动条. 随着滚动条往下拉,信息自动加载了,如下图,变40条了.由此可见,短评是通过异步加载的. 我们不可能一次性将滚动条拉到最下面,然后来一次性获取全部的数据.既然知道是通过异步来加载的数据,那么我们可以想办法直接去获取这些异步的数据. 打开 Network 查看分析 http 请求,可以

异步加载地图

大家好: 今天的另一个加载地图的方法:异步加载地图:顺便学习了一下,js脚本语言!大家分享一下! <span style="font-size:14px;"><!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name=&q

node 异步加载百度地图

export default { init: function (){ const AK = "AFNGWoP3YTGstfhT6BQUcsm5xGodgTIv"; const BMap_URL = "https://api.map.baidu.com/api?v=3.0&ak="+ AK +"&s=1&callback=onBMapCallback"; return new Promise((resolve, rejec

百度地图Canvas实现十万CAD数据秒级加载

背景 前段时间工作室接到一个与地图相关的项目,我作为项目组成员主要负责地图方面的设计和开发.由于地图部分主要涉及的是前端页面的显示,作为一名Java后端的小白,第一次写了这么多HTML和JavaScript. 项目大概是需要将一张CAD的图(导出大概三十万条数据)叠加在地图上,在接Canvas之前考虑了很多种方案,最后都否定了.首先我们想利用百度地图原生的JavaScript API实现线和点的加载,但是经过测试,当数据达到2000左右,加载时间就已经达到了数十秒,后来直接测试了一万条数据,浏览

jquery ajax 调用kkpager插件 异步加载重新生成分页后,点击页数还是跟首次加载一样

kkpager的用法网上有很多,可以百度的到. 但是在调用动态数据的时候发现两个问题 1.Ajax数据变化但是页码不变的问题,方法来自网上 2.按查询条件重新生成数据和分页,点击分页事件后totalpage 和totalrecord 和没加条件查询的数据一样. 主要原因是因为客户端不会帮你保留总页码数和总条数, 所以在按查询条件重新生成数据时,用hidden按钮绑定你的总页数和总条数 下面是ajax 调用后台数据,返回的总页数和总条数,都存放在hidden里了 $.ajax({ type: "g

自研模块加载器(四) 模块资源定位-异步加载

资源定位-动态加载 通过resolve方法进行异步解析,完整解析如下图所示: 根据上篇文章startUp.js代码,我们继续完善本章动态加载资源的代码. (function(global) { var startUp = global.startUp = { version: '1.0.1' } var data = {}; // 获取当前模块加载器配置信息 var cache = {}; // 缓存 //模块的生命周期 var status = { FETCHED: 1, SAVED: 2,