【建站】网站使用天地图

【初步配置】

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>
相关推荐
松涛和鸣5 小时前
49、智能电源箱项目技术栈解析
服务器·c语言·开发语言·http·html·php
智航GIS10 小时前
10.5 PyQuery:jQuery 风格的 Python HTML 解析库
python·html·jquery
ShoreKiten11 小时前
ctfshow-web257【保姆级wp】
php·web
这就是佬们吗15 小时前
告别 Node.js 版本冲突:NVM 安装与使用全攻略
java·linux·前端·windows·node.js·mac·web
3824278271 天前
JS表单验证:className与classList区别详解
js
heartbeat..1 天前
Spring MVC 全面详解(Java 主流 Web 开发框架)
java·网络·spring·mvc·web
REDcker1 天前
Android WebView 版本升级方案详解
android·音视频·实时音视频·webview·js·编解码
科雷软件测试1 天前
推荐几个常用的校验yaml、json、xml、md等多种文件格式的在线网站
xml·html·md·yaml
lingxiao168882 天前
WebApi详解+Unity注入--上篇:基于Framework的WebApi
c#·wpf·web
Serendipity-Solitude2 天前
HTML 五子棋实现方法
前端·html