尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

(前端地图)通过天地图API搜索地点并跳转定位

(前端地图)通过天地图API搜索地点并跳转定位
📅 发布时间:2026/7/9 17:15:09

官方接口文档地址:天地图API

我这边用到的技术栈:

发送网络请求 —— axios

前端展示组件 —— ant design ui

框架 —— vue3

逻辑部分 —— typescript+setup

废话不多说,我直接以步骤的形式来说明

步骤一:使用ant组件添加搜索框(提供搜索入口)

<div class="search-box"> <a-input-search v-model:value="searchKeyword" placeholder="请输入地点搜索" enter-button @search="onSearchLocation" /> </div>

搜索框的位置和样式根据需求自行调整

步骤二:去天地图控制台申请key

天地图·应用认证

调用天地图下的API,这个key是必要的

浏览器端 Key:前端 Vue/HTML 用,必须配置域名白名单(本地调试加localhost);不在白名单域名直接拒绝访问

服务端 Key:后端 Java/Python、桌面 GIS 软件用,绑定服务器IP 白名单

步骤三: 配置vite代理,浏览器有同源策略会拦截本地前端直接调用天地图接口,配置vite代理就可以规避这个问题,但是需要注意,这个vite代理仅在本地生效,部署后需要在nginx中反向代理配置。或者有替代方案:就是通过后端接口的方式,来转发天地图请求

在vite.config.js——server——proxy中添加代理:

'/tianditu': { target: 'http://api.tianditu.gov.cn', changeOrigin: true, rewrite: (path) => path.replace(/^\/tianditu/, ''), },

这样配置之后就不会存在跨域问题了

步骤四:逻辑部分(发送接口请求)

//绑定搜索框的值 const searchKeyword = ref(""); //进行搜索 调用天地图搜索API async function onSearchLocation(){ //去除首尾空格 const keyword = searchKeyword.value.trim(); if(!keyword){return} try{ //请求参数 const postStr = JSON.stringify({ keyWord:keyword,//搜索关键词 level:7,//级别 mapBound: "73.4,3.8,135.1,53.6", // 全国范围(包含南海诸岛完整可视) queryType:1, //普通搜索 count:10,//返回结果数量 start:0,//起始位置 }); //这边的config.vecBasemapKey 是我的key,需要替换格式为 tk = xxxxxx const response = await axios.get(`/tianditu/v2/search?${config.vecBasemapKey}`,{ params:{ postStr, type:'query' }, }); //请求成功后进行地图跳转定位 if(response.status === 200){ handleSearchResult(response.data); }else{ return false; } }catch(err){ console.error(err); return false; } }

步骤五:请求成功后获取经纬度,并进行地图定位跳转

function handleSearchResult(data){ const area = data?.area; const poi = data?.pois?.length > 0 ? data.pois[0] : null; if(!area?.lonlat && !poi?.lonlat){return} //这边必须要转为number类型,不然跳转会失败 const [lon, lat] = (area?.lonlat.split(',') || poi?.lonlat.split(',')).map(Number); const view = mapViewStore.mapView; if(!view){return} //我这边是arcgis跳转的函数 view.goTo({ center:[lon, lat], zoom: 12 }) }

我这边用的跳转函数goto()是 arcgis的,如果你们用到的的openlayers,用下面的跳转函数:

//openlayers跳转定位 view.animate({ center: [lon, lat], zoom: 12, duration: 1000 // 动画时长ms,可选 });

好了,这样就实现功能闭环了,通过天地API 来实现地图搜索定位,如果有问题也可以在评论区给予建议修正,感谢!

相关新闻

  • GEO搜索优化服务商哪家好?实体老板踩坑后,认准这家全链路服务商 - 松梢月冷
  • YOLOv8落石滑坡识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置+目标检测)
  • 2026海口爱马仕回收避坑测评|顶奢Hermes变现指南,专业包包回收怎么选 - 每日生活报

最新新闻

  • 2026免费图片转文字工具全解:在线,OCR,网站、手机端、小程序实操指南
  • Conda 环境管理:Python 3.10.12 项目部署的 5 个关键步骤与 3 个常见误区
  • 2026劳力士回收靠谱平台测评|南京五家名表机构分级对比指南 - 每日生活报
  • Three.js 波涛海浪教程
  • Claude Code 实战:AI 结对编程如何真正提效-0620
  • JetBrains 推面向团队的 AI 系统,统一开发流程并升级商业模型

日新闻

  • SQL 查询语句的标准逻辑执行顺序(即语义处理顺序),它与实际书写顺序不同,但决定了数据库如何解析和执行查询
  • ORB-SLAM2 重定位模块深度解析:从 BoW 候选帧到 PnP 优化的 6 步流程
  • 罗技鼠标宏压枪脚本终极指南:从原理到实战的完整解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号