通过腾讯地图api获取用户位置限制在指定位置区域
<!--在微信中获取用户位置-->
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&key=3FVBZ-FZ2KW-E7CR4-ROZRS-B7TNQ-C7BSI"></script>
<script type="text/javascript">
var map;
var markerE;
var wd = "", jd = "", fw = "", address = "", isCompany = ;
var init = function () {
map = new qq.maps.Map(document.getElementById("container"), {
center: new qq.maps.LatLng(30.602239286171868, 114.51272616386414),
zoom:
});
var polygon = new qq.maps.Polygon({
map: map,
path: path,
strokeColor: new qq.maps.Color(, , , 0.5),
fillColor: qq.maps.Color.fromHex("#000000", 0.5)
});
}
var path = [
new qq.maps.LatLng(30.602165333622294, 114.51280663013458),
new qq.maps.LatLng(30.601347229791023, 114.51272616386414),
new qq.maps.LatLng(30.601236299928177, 114.51398680210114),
new qq.maps.LatLng(30.60208213693682, 114.51407799720764)
];
function isInsidePolygon(pt, poly) {
for (var c = false, i = -, l = poly.length, j = l - ; ++i < l; j = i)
((poly[i].lat <= pt.lat && pt.lat < poly[j].lat) || (poly[j].lat <= pt.lat && pt.lat < poly[i].lat)) &&
(pt.lng < (poly[j].lng - poly[i].lng) * (pt.lat - poly[i].lat) / (poly[j].lat - poly[i].lat) + poly[i].lng) &&
(c = !c);
return c;
}
var dksubmit = function () {
$('#dialog1').hide();
if (address == "") {
$("#dialog2").show().find("#msg").text("未获取到地址,请先定位");
} else {
$.post("url", { wd: wd, jd: jd, fw: fw, add: address, isCompany: isCompany }, function (res) {
if (res == "true") {
$("#dialog2").show().find("#msg").text("在规定位置");
} else {
$("#dialog2").show().find("#msg").text(res);
}
});
}
}
$(document).ready(function () {
$(".weui_loading_toast").show();
wx.ready(function () {
$(".dw").click();
});
wx.error(function (res) {
var msg = "";
for (var i in res) {
msg += i + ":" + res[i] + "|";
}
alert("ERROR:" + msg);
});
wx.config(@(new HtmlString(ViewBag.sign)));
init();
$(".dw").click(function () {
wx.getLocation({
type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
var loc = new qq.maps.LatLng(res.latitude, res.longitude);
map.setCenter(loc);
if (markerE) {
markerE.setPosition(loc);
} else {
markerE = new qq.maps.Marker({
position: loc,
map: map
});
}
$("#zb").text(res.latitude + "," + res.longitude);
var geocoder = new qq.maps.Geocoder({
complete: function (result) {
$("#dz").text(result.detail.address);
address = result.detail.address;
}
});
var coord = new qq.maps.LatLng(res.latitude, res.longitude);
geocoder.getAddress(coord);
wd = res.latitude;
jd = res.longitude;
if (res.accuracy != undefined) {
fw = res.accuracy;
} else {
fw = ;
}
if (isInsidePolygon(loc, path)) {
$("#yx").text("有效位置");
isCompany = ;
}
else {
isCompany = ;
$("#yx").text("无效位置");
} $(".weui_loading_toast").hide();
}
});
}); });
</script>
通过腾讯地图api获取用户位置限制在指定位置区域的更多相关文章
- 微信小程序wx.getLocation()获取经纬度及JavaScript SDK调用腾讯地图API获取某一类地址
简介 腾讯位置服务为微信小程序提供了基础的标点能力.线和圆的绘制接口等地图组件和位置展示.地图选点等地图API位置服务能力支持,使得开发者可以自由地实现自己的微信小程序产品. 在此基础上,腾讯位置服务 ...
- JAVA使用经纬度通过腾讯地图API获取详细地址
官方文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder package com.weixin.map; ...
- HTML5调用百度地图API获取当前位置并直接导航目的地的方法
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8&quo ...
- HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8"&g ...
- Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等,以及根据经纬度通过百度地图API获取位置
通过第三方库exifread读取照片信息.exifread官网:https://pypi.org/project/ExifRead/ 一.安装exifreadpip install exifread ...
- 腾讯地图 API 调用入门
本文仅为腾讯地图 API 调用入门,如需进阶学习,请在腾讯位置服务网站上进行学习. 登陆网址 https://lbs.qq.com/ 点击右上角的登陆按钮,需要进行注册按照流程进行就好. 完成之后,选 ...
- Ceph Object Gateway Admin api 获取用户列表问题
按照官方文档使用Admin Ops API 获取用户列表 GET /admin/user时 返回{code: 403, message: Forbidden}这里有两个问题:首先用户列表的请求为 如下 ...
- 百度地图api根据用户IP获取用户位置(PHP)
1.百度地图开放平台找的你的ak ,链接:http://lbsyun.baidu.com/apiconsole/key 2.获取用户ip地址(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获 ...
- 百度地图JavaScript API获取用户当前经纬度和详细地理位置,反之通过详细地理位置获取当前经纬度
前言: 前端时间刚好使用了百度地图的js api定位获取用户当前经纬度并获取当前详细位置和通过当前用户详细地理位置换取用户当前经纬度坐标的功能,为了方便下次找起来方便一些自己在这里记录一下,希望也能够 ...
随机推荐
- impdp时卡住,DW等待library cache lock
同事反映impdp时在SCHEMA_REPORT/TYPE/TYPE_SPEC步骤卡住,1个多小时后也没有响应, 查下v$session: select program,sid, event,bloc ...
- 【翻译自mos文章】 asmcmd cp命令不能拷贝大于2GB的文件。
asmcmd cp命令不能拷贝大于2GB的文件. 參考原文: Asmcmd CP Command Can Not Copy Files Larger Than 2 GB (Doc ID 786258. ...
- 黑马day01xml 解析方式与原理分析
dom解析方式和sax解析
- ZOJ3629 Treasure Hunt IV(找规律,推公式)
Treasure Hunt IV Time Limit: 2 Seconds Memory Limit: 65536 KB Alice is exploring the wonderland ...
- 消除ADB错误“more than one device and emulator”的方法
当我连着手机充电的时候,启动模拟器调试,运行ADB指令时,报错. C:\Users\gaojs>adb shell error: more than one device and emulato ...
- Constructing Roads --hdoj
Constructing Roads Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) ...
- 彻底弄懂px em rem
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的 ...
- Windows环境下使用强大的wget工具
安装 下载[http://www.interlog.com/~tcharron/wgetwin.html] 解压到目录 比如我解压到D:\Tool\wget 添加wget环境变量,这样使用就更方便了, ...
- ShowDialog函数与Form的Activated函数同时使用的陷阱
当我们需要在form启动之时,焦点显示在特定的控件“btn”上,我们可以先将btn的TabIndex设为0,然后要确保它visible=true,最后在Form的Activated事件方法中btn.G ...
- 解决Android单个dex文件不能超过65535个方法问题
一.找坑:谷歌规定单个dex文件中的方法不能超过65536的限制 我们编写项目过程中在工程的lib文件夹下引用的第三方插件jar包太多或者项目过大,编译运行时就有可能报出com.android.dex ...