uniapp通过ip获取其地址、经纬度、详细地址:

这篇具有很好参考价值的文章主要介绍了uniapp通过ip获取其地址、经纬度、详细地址:。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.方法:

查看ip内容:http://pv.sohu.com/cityjson?ie=utf-8

【1】js获取ip地址:

<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript">  
    console.log(returnCitySN["cip"]+','+returnCitySN["cname"])  
</script>

【2】uni-app获取ip地址:(此方法会跨域报错=>后续找到解决方法再补充)

uni.request({
    url:'http://pv.sohu.com/cityjson?ie=utf-8',
	method:'POST',
	success: (res) => {
        const reg = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/;
		let ip = reg.exec(res.data);
		console.log(ip[0]);
	}
})

uniapp获取ip地址,小程序端,图表与地图,uni-app,tcp/ip,网络协议
【3】使用H5自带的获取位置

1、部分手机和浏览器不太支持这个API,还会有警告报错,所以感觉这个API有点鸡肋,不太能用得上。
2、如果需要展示地区名称,还需要另外引入类似百度地图的第三方平台提供的js进行经纬度转换地区名称等。
3、浏览器地址必须是https的,不然不支持。
if(navigator.geolocation) {
	navigator.geolocation.getCurrentPosition((res)=> {
		 console.log(res);//这里会返回经纬度,然后还要通过经纬度转换地区名称
	});
}

【4】使用百度地图获取位置

1、在百度地图开发平台注册账号,并申请ak密钥
2、在页面中引用百度地图js,(vue项目就在index.html中引用)
<body>
  <div id="app"></div>
	<!-- built files will be auto injected -->
	<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=qI3333RVsdret2A9999VC858Q&s=1"</script>
</body>
3、在页面中写入下面代码(可以直接返回经纬度和省市区名称等):
mounted() {            
	//获取当前城市
    var geolocation=new BMap.Geolocation();
    geolocation.getCurrentPosition(function(r){
        var city=r.address.city//返回当前城市
        that.currCity = city;
     })
},

【5】微信js-sdk自带的API

登录微信平台获取appid和秘钥

配置服务器信息,和js接口安全域名、网页授权域名等

把配置信息文件.txt放到配置的服务器下面

查看所有的接口权限,是否有获取用户地理位置

通过调接口的方式获取时间戳,签名等
wx.ready(function () 
{
    wx.checkJsApi(
    {
        jsApiList : ['getLocation'],
        success : function (res) 
        {
            if (!res.checkResult.getLocation) {
                alert('暂不支持获取地理位置接口,请升级微信版本!');
                return;
            }
        }
    }) wx.getLocation(
    {
        success : function (res) 
        {
            console.log(res)//地理位置信息都在这里
        },
        cancel : function (res) 
        {
            alert('用户拒绝授权位置信息!');
        }
    })
})
2.案例:

uniapp获取ip地址,小程序端,图表与地图,uni-app,tcp/ip,网络协议
uniapp获取ip地址,小程序端,图表与地图,uni-app,tcp/ip,网络协议
uniapp获取ip地址,小程序端,图表与地图,uni-app,tcp/ip,网络协议

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title><%= htmlWebpackPlugin.options.title %></title>

<script>
document.addEventListener('DOMContentLoaded', function() {
	document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})
</script>
<link rel="stylesheet" href="<%= htmlWebpackPlugin.options.baseUrl %>static/index.css" />
<!-- 引入外部js -->
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript">  
	// 获取ip及地址
    console.log(returnCitySN["cip"]+','+returnCitySN["cname"],'ip及其地址') 
    localStorage.setItem('IPAddress', returnCitySN["cname"]) //存储ip获取的地址 

	// 存储IP地址
	var ip = returnCitySN["cip"];
	// console.log("你的IP是:" +ip)
	get_pos(ip);

	function get_pos(ip) {
		// 构建url==>这里使用的是高德地图
		var url = "https://restapi.amap.com/v5/ip?key=你的key&type=4&ip=" + ip;
				// 建立所需的对象
				var httpRequest = new XMLHttpRequest();
				// 打开连接  将请求参数写在url中 
				httpRequest.open('GET', url, true);
				// 发送请求  将请求参数写在URL中
				httpRequest.send();
				// 经纬度坐标
				var pos = "";
				// 获取数据后的处理程序
				httpRequest.onreadystatechange = function() {
					if (httpRequest.readyState == 4 && httpRequest.status == 200) {
						// 获取到json字符串
						var ret = httpRequest.responseText;
						// 转为JSON对象
						var json = JSON.parse(ret);
						pos = json["location"];
						// console.log("你的经纬度是:" +pos)
						localStorage.setItem('longitudeAndLatitude',JSON.stringify(pos))
						get_addr(pos);
					}
				};
			}

			function get_addr(pos) {
				var httpRequest = new XMLHttpRequest();
				url = "https://restapi.amap.com/v3/geocode/regeo?key=你的key&radius=0&extensions=all&batch=false&location=" + pos;
				httpRequest.open('GET', url, true);
				httpRequest.send();
				httpRequest.onreadystatechange = function() {
					if (httpRequest.readyState == 4 && httpRequest.status == 200) {
						// 获取到json字符串
						var ret = httpRequest.responseText;
						// 转为JSON对象
						var json = JSON.parse(ret);
						var address = json["regeocode"]["formatted_address"];
						// console.log("你的地址大概是:"+address);
					}
				};
			}
</script>
</head>

<body>
<noscript>
<strong>Please enable JavaScript to continue.</strong>
</noscript>

<div id="app"></div>
</body>
</html>
3.最终效果:

uniapp获取ip地址,小程序端,图表与地图,uni-app,tcp/ip,网络协议文章来源地址https://www.toymoban.com/news/detail-525870.html

到了这里,关于uniapp通过ip获取其地址、经纬度、详细地址:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp微信小程序uni.getLocation获取位置(经纬度)之逆地址解析获取城市信息

    前言: 我好像隐隐约约的记得前几个月用uniapp开发微信小程序使用API接口uni.getLocation好像能获取到城市信息,但是现在只能获取到经度、纬度了,然后去看了一下uniapp官网发现仅App端支持......好吧!那可能是我记错了,也没关系,竟然能获取到经度和纬度那我们就使用第三方

    2024年02月10日
    浏览(61)
  • uniapp使用高德地图地理位置逆解析/将获取到的经纬度转化为地址

    1、在高德登录注册,进行个人或企业开发者认证(个人开发者可以随时升级企业开发者) 高德地图开发aip网址 2、进入控制台,按以下图示操作 添加完成之后把key复制一下。 3、使用uni.request进行请求(用什么框架就这么请求,这里示例的是uniapp),请求地址为:https://rest

    2024年02月08日
    浏览(50)
  • 用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)

    ?php //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function   getip(){      if (! empty ( $_SERVER [ \\\"HTTP_CLIENT_IP\\\" ])){      $cip   =  $_SERVER [ \\\"HTTP_CLIENT_IP\\\" ];      }      else   if (! empty ( $_SERVER [ \\\"HTTP_X_FORWARDED_FOR\\\" ])){      $cip   =  $_SERVER [ \\\"HTTP_X_FOR

    2024年02月11日
    浏览(66)
  • vue对高德地图的简单使用:点击标记并获取经纬度和详细地址

    目录 第一步:先按部就班,进入高德开放平台,跟着步骤注册账号,创建应用 第二步:用npm下载包,初始化地图 第三步:实现点击地图添加标记 第四步:点击获取详细地址 第五步:搜索获取相关地区提示 第六步:全部代码(把密钥和key替换可直接运行)   高德地图有AP

    2024年02月06日
    浏览(54)
  • uniapp---- 获取当前位置的经纬度等信息的详细步骤(包含小程序)

    1.在项目中进行配置,我选择的是高德地图,填写相关信息。 2.进入高德官网:https://lbs.amap.com/upgrade#quota,进行登录注册,进入到“控制台”。 3.打开 “应用管理” - “我的应用”页面,点击“创建新应用”,根据页面提示填写内容创建应用。 4.在应用下点击“添加”为应用

    2024年02月11日
    浏览(50)
  • 使用腾讯地图获取地址经纬度

    1、在终端执行 2.在main.js引入  或则直接在需要页面引入 3、写方法 具体的参考腾讯开发文档https://lbs.qq.com/service/webService/webServiceGuide/webServiceGeocoder

    2024年02月09日
    浏览(39)
  • 高德地图根据经纬度获取地址信息

    主要是使用高德里面 地理编码与逆地理编码 的 getAddress 这个方法, 根据逆向地理编码:将地理坐标(经纬度)转换成地址描述信息,对应为AMap.Geocoder的getAddress方法。 具体使用的代码为 最后看效果 这是传的经纬度与解析出来的地理位置 如果需要正向解析将地理位置变成经

    2024年02月11日
    浏览(50)
  • uniapp 在app中获取经纬度

    在uniapp中app端,uni.getLocation获取经纬度会有大概1-2公里的偏差,在实际项目中,有的需求对经纬度的准确度要求比较严格,研究了很多种方式,最终发现使用高德地图api的微信小程序的插件获取的准确性是最准的,偏差最小的。 1.先去高德地图获取key,注意,这里是要获取微

    2024年02月15日
    浏览(46)
  • 小程序通过经纬度获取省市区(高德地图)

    在app.js文件中引入高德地图的js文件 获取当前定位   amap-wx.130.js文件

    2024年02月08日
    浏览(54)
  • 百度开发者平台API地理编码,根据地址获取经纬度

    地理编码 | 百度地图API SDK (baidu.com) 原始csv 结果: 字段名称: 社区名称、经度、纬度、看下表吧。 地理编码 | 百度地图API SDK (baidu.com) 或者参考这篇博文: http://t.csdn.cn/AghZk

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包