移动端城市定位,城市区域代码adcode
使用高德定位API :
- AMap.Map('iCenter')
- AMap.CitySearch()
先在高德开放平台注册申请定位权限的key。 网站;高德开放平台
在需要定位的页面引入有定位key的script
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>基本引入展示</title>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=您申请的key值"></script>
</head>
<body>
<div id="container"></div>
</body>
</html>
使用高德定位API
需求:苹果设备使用IP定位,其他使用gps定位
function getlocation() {
var u = navigator.userAgent;
var ua = navigator.userAgent.toLowerCase();
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
//GPS定位
function locationForGPS() {
/*********跟踪标记**********/ console.log('GPS定位开始+++');
var map, geolocation;
//加载地图,调用浏览器定位服务
map = new AMap.Map('iCenter');
map.plugin('AMap.Geolocation', function() {
geolocation = new AMap.Geolocation({
enableHighAccuracy: false,//是否使用高精度定位,默认:true
timeout: 10000, //超过10秒后停止定位,默认:无穷大
});
map.addControl(geolocation);
geolocation.getCurrentPosition();
//getCityInfo是高德GPS定位里面的一个方法,先返回ip定位数据,由于IP定位有可能不准确,所以后面用GPS数据修正
//
geolocation.getCityInfo(function(status,result){
/*********跟踪标记**********/ console.log('与GPS同步IP定位开始,进行数据写入+++');
if (status === 'complete' && result.info === 'SUCCESS') {
/*********跟踪标记**********/ console.log('同步IP定位成功,进行数据写入+++');
if(isNull(sessionStorage.getItem('autouserchooselocationct'))){
/*********跟踪标记**********/ console.log('未检测检查有上一次定位数据,进行数据写入+++');
let cityAdcode=result.adcode;
let cityName=result.city;
sessionStorage.setItem('autouserchooselocationct', cityName);
sessionStorage.setItem('autouserchooselocationcode', cityAdcode);
/*********跟踪标记**********/ console.log('同步IP定位结束,进行数据写入完成+++');
}
}
});
AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
AMap.event.addListener(geolocation, 'error', onError); //返回定位出错信息
});
//GPS定位成功
function onComplete(data) {
console.log(data)
/*********跟踪标记**********/ console.log('GPS定位启动+++');
//gsp定位精确到区,返回的adcode精确到了城市下属的区域,
//想要获取城市的abcode还需要使用高德的另一个API,城市区域查询
let cityName=data.addressComponent.city;
let geocoder = new AMap.Geocoder({});
//地理编码,返回地理编码结果,
geocoder.getLocation(cityName, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
/*********跟踪标记**********/ console.log('GPS定位成功,处理定位数据+++');
/*********跟踪标记**********/ console.log('进行数据写入,覆盖同步IP的数据+++');
let cityAdcode=result.geocodes[0].adcode;
sessionStorage.setItem('autouserchooselocationct', cityName);
sessionStorage.setItem('autouserchooselocationcode', cityAdcode);
/*********跟踪标记**********/ console.log('GPS定位结束,进行数据写入完成+++');
}
});
}
//GPS定位失败
function onError() {
/*********跟踪标记**********/ console.log('GPS定位失败开始启用ip定位+++');
locationForIp(true);
/*********跟踪标记**********/ console.log('gps-ip++...')
}
}
//IP定位
function locationForIp(tap) {
/*********跟踪标记**********/if(tap){ console.log('GPS定位失败开始启用ip定位+++');}
/*********跟踪标记**********/ console.log('ip定位开始+++');
var citysearch = new AMap.CitySearch();
//自动获取用户IP,返回当前城市
citysearch.getLocalCity(function (status, result) {
if (status === 'complete' && result.info === 'OK') {
if (result && result.city && result.bounds) {
let GetUserLocation = result.city,
GetUserLocationcode = result.adcode;
/*********跟踪标记**********/console.log('ip定位成功,开始检查是否有上一次定位数据+++');
if(isNull(sessionStorage.getItem('autouserchooselocationct'))){
/*********跟踪标记**********/console.log('ip定位成功,未检测检查有上一次定位数据,进行数据写入+++');
sessionStorage.setItem('autouserchooselocationct', GetUserLocation);
sessionStorage.setItem('autouserchooselocationcode', GetUserLocationcode);
/*********跟踪标记**********/console.log('ip定位成功,进行数据写入结束+++');
}
}
} else {
/*********跟踪标记**********/console.log('ip定位失败,进行数据写入结束+++');
}
})
}
if(isiOS){
/*********跟踪标记**********/console.log('ios设备启用IP定位');
locationForIp(false);
}else {
/*********跟踪标记**********/console.log('非ios设备启用GPS定位');
locationForGPS()
}
}
};移动端城市定位,城市区域代码adcode的更多相关文章
- html5或者移动端暴力定位城市-高德地图,可以取到当前的城市code,亲测好用
复制 粘贴到html中打开!!!!! <!doctype html> <html> <head> <meta charset="utf-8" ...
- [RN] 全国城市列表选择 (包含定位城市、热门城市、全国城市)
全国城市列表选择 (包含定位城市.热门城市.全国城市) 用ScrollView 实现,解决 SectionList 实现的卡顿问题 实现效果如图: 代码实现如图: 主逻辑文件 cityList.js ...
- iOS_城市定位
技术点-利用CoreLoaction框架,实现城市定位功能. 原理: 利用苹果官方提供的CoreLocation框架实现城市定位的功能: 该框架主要包括两个比较有用的类:定位类CLLocationMa ...
- [android] 百度地图开发 (两).所在地的城市定位和城市POI搜索
一个. 百度地图城市位置和POI搜索知识 上一篇文章"百度地图开发(一)"中讲述了怎样申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述怎样定位城市位置.定 ...
- mpvue小程序开发之 城市定位
背景: 在进行小程序开发时,有一个定位城市的需求,下面就来讲讲怎么实现这个功能的吧 解决方案: 小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名 ...
- 通过ip得到所在城市,以及城市所在经纬度坐标(监控系统中用的该代码,小航哥)
监控系统中就是利用的该段代码,实现通过ip得到所在城市,以及城市所在经纬度坐标,最后得以利用echarts实现模拟迁移的效果 api官方介绍: http://lbsyun.baidu.com/inde ...
- 转: javascript实现全国城市三级联动菜单代码
<html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...
- 获取客户端IP地址定位城市信息
获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (iss ...
- 根据IP定位城市
根据IP定位城市:http://www.sucaihuo.com/js/35.html 示例:http://www.sucaihuo.com/jquery/0/35/demo/
随机推荐
- c/c++(c++和网络编程)日常积累(二)
Linux下C编程通过宏定义打开和关闭调试信息 https://www.cnblogs.com/robinsons/p/3667032.html https://blog.csdn.net/u0134 ...
- 居然可以像玩游戏一样学Git
工作中经常用到 git,但是用到的指令也都是比较初级的.简单的.当时学习的过程也是有点痛苦.各种概念理解起来要么靠想象,要么自己创建工程提交记录,然后执行指令,看具体效果.这样学下来是事倍功半. 在搜 ...
- MM32F0020 UART1中断接收和UART1中断发送
目录: 1.MM32F0020简介 2.初始化MM32F0020 UART1和NVIC中断 3.编写MM32F0020 UART1使能中断发送函数 4.编写MM32F0020 UART1中断接收和中断 ...
- MariaDB 与Mysql版本对应关系
特定MariaDB版本的完全兼容性 就InnoDB而言,MariaDB 10.2.MariaDB 10.3和MariaDB 10.4是MySQL 5.7的有限替代.然而,在每一个新的MariaDB版本 ...
- linux 文件查找 find
find 是实时查找工具,通过遍历指定路径完成文件查找 特点: 查找速度略慢 精确查找 实时查找 查找条件丰富 1.对每个目录先处理目录内的文件,再处理目录本身 find /data/test -de ...
- NLP论文解读:无需模板且高效的语言微调模型(下)
原创作者 | 苏菲 论文题目: Prompt-free and Efficient Language Model Fine-Tuning 论文作者: Rabeeh Karimi Mahabadi 论文 ...
- CF1476D题解
场上 \(O(n)\) 切掉的一道挺水的题. 首先向左走和向右走,一个很明显的结论是,如果向左走了一段距离又回到原点,那么方向是不会变的,所以只需要求出能够向左走的最远距离和向右走的最远距离,加起来即 ...
- fashion_mnist 计算准确率、召回率、F1值
本文发布于 2020-12-27,很可能已经过时 fashion_mnist 计算准确率.召回率.F1值 1.定义 首先需要明确几个概念: 假设某次预测结果统计为下图: 那么各个指标的计算方法为: A ...
- python连接mongodb数据库
之前使用过python连接mysql数据库(用到pymysql库),公司也有使用mongodb数据库,所以就整理了一份python连接mongodb数据库的代码出来,以供记录和分享. 首先我们要用到 ...
- BUAA_DS_北航数据结构:输出全排列
输入一个数 \(n\),输出 \(1\sim n\) 的所有全排列,每个排列占一行,每个字符保留 \(5\) 个场宽.勤奋的同学一定已经开始打表了是吧. 说是能做肯定不是骗大家,那怎么做呢~ 其实回溯 ...