【建站】网站使用天地图

【初步配置】

1.首先需要到天地图平台注册账号,并完成开发者认证

地址:https://www.tianditu.gov.cn/

2.注册完成账号后,进入天地图的控制台,然后创建应用

这里应用为网站也就是浏览器应用,所以选择浏览器应用即可

创建时还需要填写域名白名单和应用名字

应用名称:自定义名字即可,可以是网站的名字

域名白名单:网站的域名地址

创建完成后复制一下密钥,后面代码中会用到.

由于之前配置没有截图,所以这部分仅用文字说明,天地图的控制台操作很简洁,清晰易懂.

【代码】

代码部分,可以在天地图网站导航栏点击"开发资源"会转到天地图API

http://lbs.tianditu.gov.cn/

导航栏有网页API,选择API4.0点进去就可以,后面会有指导和代码示例,看你想要实现那种网站地图效果,将示例代码嵌入到你的地图页面即可。

这里直接写一下个人使用的代码,有多种效果可以实现,具体看代码示例部分.

1.首先引入天地图api并填写在控制台获取的密钥,密钥是在创建完应用后就会有,复制即可.

2.将地图部分代码写到对应页面即可,注意是script,里面的sContent部分的信息可以填自己的

3.需要将html的id修改为mapDiv,然后调用onLoad()方法,具体可以看示例代码,其实就是在加载时调用一下.

4.center = new T.LngLat()的经纬度修改为自己的

html 复制代码
<script type="text/javascript" src="https://api.tianditu.gov.cn/api?v=4.0&tk=密钥"></script>
<!-- 地图 -->
<script>
        var map;
        var zoom = 15;
        var center;
        var localsearch;
        var radius = 5000;
        var infoWin;
        function onLoad() {
        	center = new T.LngLat(经纬度,经纬度);
            //初始化地图对象
            map = new T.Map("mapDiv");
            //设置显示地图的中心点和级别
            map.centerAndZoom(center, zoom);
            //创建信息窗口对象

            marker = new T.Marker(center);// 创建标注
            map.addOverLay(marker);
            var infoWin1 = new T.InfoWindow();
            var sContent =
                "<div style='margin:0px;'>" +
                "<div style='margin:10px 10px; '>" +
                "<img style='float:left;margin:0px 10px' src='' width='101' height='49' title=''/>" +
                "<div style='margin:10px 0px 10px 120px;'>电话 :  <br>地址:" +
                "</div>" +
                "<input  id='keyWord' value='机场' type='text' style='border: 1px solid #cccccc;width: 180px;height: 20px;line-height: 20px;padding-left: 10px;display: block;float: left;'>" +
                "<input style='margin-left:195px;  width: 80px;height: 24px; text-align: center; background: #5596de;color: #FFF;border: none;display: block;cursor: pointer;' type='button' value='周边搜索'  onClick=\"localsearch.searchNearby(document.getElementById('keyWord').value,center,radius)\">" +
                "</div>" +
                "</div>";
            infoWin1.setContent(sContent);
            marker.addEventListener("click", function () {
                marker.openInfoWindow(infoWin1);
            });// 将标注添加到地图中
            var config = {
                pageCapacity:10,	//每页显示的数量
                onSearchComplete:localSearchResult	//接收数据的回调函数
            };
            //创建搜索对象
            localsearch = new T.LocalSearch(map,config);
        }

        function localSearchResult(result)
        {
            //清空地图及搜索列表
            clearAll();
            //创建圆
            createCircle();
            //解析点数据结果
            pois(result.getPois());
        }

        //解析点数据结果
        function pois(obj)
        {
            if(obj)
            {
                //坐标数组,设置最佳比例尺时会用到
                var zoomArr = [];
                for(var i=0;i<obj.length;i++)
                {
                    //闭包
                    (function(i){
                        //名称
                        var name = obj[i].name;
                        //地址
                        var address = obj[i].address;
                        //坐标
                        var lnglatArr = obj[i].lonlat.split(" ");
                        var lnglat = new T.LngLat(lnglatArr[0],lnglatArr[1]);

                        var winHtml = "地址:"+address;

                        //创建标注对象
                        var marker = new T.Marker(lnglat);
                        //地图上添加标注点
                        map.addOverLay(marker);
                        //注册标注点的点击事件
                        marker.addEventListener("click", function () {
                            this.showPosition(marker, name, winHtml);

                        }, this)
                        zoomArr.push(lnglat);

                        //在页面上显示搜索的列表
                        var a = document.createElement("a");
                        a.href = "javascript://";
                        a.innerHTML = name;
                        a.onclick = function(){
                            showPosition(marker,name,winHtml);
                        }

                    })(i);
                }
            }
        }
        //圆形
        function createCircle()
        {
            var config = {
                color: "blue", //折线颜色
                fillColor: "#fff",    //填充颜色。当参数为空时,折线覆盖物将没有填充效果
                weight: "3", //折线的宽度,以像素为单位
                opacity: 0.5,    //折线的透明度,取值范围0 - 1
                fillOpacity: 0.4,
                lineStyle: "solid" //折线的样式,solid或dashed
            };
            //定义该矩形的显示区域
            var circle = new T.Circle(center,radius,config);
            map.addOverLay(circle);
        }
        //显示信息框
        function showPosition(marker, name, winHtml) {
            if (infoWin) {
                map.removeOverLay(infoWin);
                infoWin = null;
            }
            var html = "<h3>" + name + "</h3>";
            html += winHtml;
            infoWin = new T.InfoWindow(html);
            marker.openInfoWindow(infoWin);
        }

        //清空地图及搜索列表
        function clearAll()
        {
            map.clearOverLays();
        }
    </script>
相关推荐
顾安r5 小时前
11.20 脚本网页 数学分支
算法·数学建模·html
PythonFun5 小时前
WPS中表格行高无法手动调整怎么办?
前端·html·wps
热河暖男6 小时前
使用 Flying-Saucer-Pdf + velocity 模板引擎生成 PDF(解决中文和图片问题)
java·pdf·html·springboot
晚烛14 小时前
实战前瞻:构建高可靠、强协同的 Flutter + OpenHarmony 智慧教育平台
javascript·flutter·html
小肖爱笑不爱笑20 小时前
JavaScript
java·javascript·json·web
柒.梧.21 小时前
HTML入门指南:30分钟掌握网页基础
前端·javascript·html
Access开发易登软件1 天前
Access开发实战:绘制漏斗图实现业务转化分析
数据库·信息可视化·html·vba·图表·access
程序员刘禹锡1 天前
Html中常用的块标签!!!12.16日
前端·html
小阿宁的猫猫1 天前
XSS的原理、使用、防御方法及练习题
web安全·网络攻击模型·xss·js