public partial class test : BasePage
{
protected test()
{
AccessPage = PageWebType.WX;
} protected string app_Id
{
get { return ViewState["app_Id"].ToString(); }
set { ViewState["app_Id"] = value; }
} protected string timestamp
{
get { return ViewState["timestamp"].ToString(); }
set { ViewState["timestamp"] = value; }
} protected string nonceStr
{
get { return ViewState["nonceStr"].ToString(); }
set { ViewState["nonceStr"] = value; }
} protected string signature
{
get { return ViewState["signature"].ToString(); }
set { ViewState["signature"] = value; }
} protected string ticket
{
get { return ViewState["ticket"].ToString(); }
set { ViewState["ticket"] = value; }
} protected string open_id
{
get { return ViewState["open_id"].ToString(); }
set { ViewState["open_id"] = value; }
} protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitData(); lblInfo.Text = GetPointDistance(22.724623, 113.31403, 22.72464, 113.31404).ToString();
}
} private void InitData()
{
//绑定js接口调用参数
var url = System.Configuration.ConfigurationManager.AppSettings["RootUrl"].ToString();
if (url.Length > )
{
var query = Request.Url.Query;
var strUrl = url + "/app/css/test.aspx" + query;
JsSignatureModel jsModel = new JsAPIOprate().GetJsApiSignature(CssUnionID, strUrl);
if (jsModel != null)
{
app_Id = jsModel.app_id;
signature = jsModel.signature;
nonceStr = jsModel.noncestr;
timestamp = jsModel.timestamp;
ticket = jsModel.ticket;
}
}
open_id = GetQueryString("open_id");
hideOpen_id.Value = open_id;
} private const double EARTH_RADIUS = 6378.137;//地球半径
private static double Rad(double d)
{
return d * Math.PI / 180.0;
}
/// <summary>
/// 返回两经纬度距离(千米)
/// </summary>
/// <param name="lat1">纬度1</param>
/// <param name="lng1">经度1</param>
/// <param name="lat2">纬度2</param>
/// <param name="lng2">经度2</param>
/// <returns></returns>
private double GetPointDistance(double lat1, double lng1, double lat2, double lng2)
{
double radLat1 = Rad(lat1);
double radLat2 = Rad(lat2);
double a = radLat1 - radLat2;
double b = Rad(lng1) - Rad(lng2); double s = * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / ), ) +
Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / ), )));
s = s * EARTH_RADIUS;
s = Math.Round(s * ) / ;
return s;
}
}
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<script type="text/javascript" src="../../js/jquery.1.11.1.min.js"></script>
<script type="text/javascript" src="../../js/jweixin-1.0.0.js"></script>
<script type="text/javascript">
$(function () {
wx.config({
debug: false,
appId: '<%=app_Id%>',
timestamp: <%=timestamp%>,
nonceStr: '<%=nonceStr%>',
signature: '<%=signature%>',
jsApiList: [
'checkJsApi',
'getLocation'
]
});
wx.ready(function () {
var isCheck=false;
wx.checkJsApi({
jsApiList: [
'checkJsApi',
'getLocation'
],
success: function (res) {
//alert(JSON.stringify(res));
isCheck=res.checkResult.getLocation;
}
});
document.querySelector('#btnLocation').onclick = function () {
if(!isCheck){
msgtip("您的微信版本不支持获取位置!");
return;
}
wx.getLocation({
success: function (res) {
alert(JSON.stringify(res));
},
cancel: function (res) {
alert('发生错误');
}
});
};
});
wx.error(function (res) {
alert(res.errMsg);
}); }); </script>
</head>
<body>
<form id="form1" runat="server">
<header class="ui-header ui-header-positive ui-border-b">
<i class="ui-icon-return" onclick="history.back()"></i><h1>获取地址位置</h1><a href="Default.aspx?open_id=" class="sp-back sp-home"></a>
</header>
<div class="panel-body" style="margin-top:45px;">
<input type="button" id="btnLocation" value="取得位置" />
<asp:Literal ID="lblInfo" runat="server"></asp:Literal>
</div>
<div class="ui-poptips ui-poptips-warn" id="divInfo" style="display:none;">
<div class="ui-poptips-cnt"><i></i><span id="spntool"></span></div><input type="hidden" id="hideCard_no" />
</div><div id="datePlugin"></div><asp:HiddenField ID="hideOpen_id" runat="server" />
</form>
</body>
</html>

调用微信JsAPI端获取位置的更多相关文章

  1. 微信开发者工具获取位置错误(定位到北京)---调用wx.getLocation不出现获取定位提示

    微信开发者工具获取不到自己当前的位置可能是以下几个原因: 1.调用wx.getLocation方法之后需要在app.json中声明permission字段 { "pages": [ ...

  2. .net Core 调用微信Jsapi接口,H5解析二维码

    项目里需要用到扫描二维码,自己实现,不会. 找到了两种解决方案: 通过reqrcode.js,这是一个前端解析二维码内容的js库.如果二维码比较清晰,用这种效果也不错 调用微信扫一扫功能,这种效果很好 ...

  3. 微信公众平台开发——为何不能在网页调用微信jsapi?

    说到这问题,相信大部分程序员老手都会轻蔑一笑,当然是跨域导致的啊!但是为了一些小白,我觉得还是很有必要再说一次的. 首先介绍什么是跨域,由于浏览器的同源策略,出于防范跨站脚本的攻击,禁止客户端脚本( ...

  4. 微信小程序 获取位置、移动选点、逆地址解析

    WGS- 地心坐标系,即GPS原始坐标体系.在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密.GoogleEarth及GPS芯片使用. .GCJ-02火星坐标系,国测局02年发布的坐标体 ...

  5. [小程序]微信小程序获取位置展示地图并标注信息

    1.map组件的高度如果想要铺满屏幕,要是使用height:100vh样式2.获取位置要在app.json中标明权限3.先使用wx.getLocation获取自己的位置,然后再回调中使用setData ...

  6. 微信小程序获取位置

    获取位置 getLocation wx.getLocation({ type: 'wgs84', success (res) { const latitude = res.latitude const ...

  7. 微信小程序~获取位置信息

    微信小程序提供的getlocation来获取用户的定位,能够得到用户的经纬度信息 (注:getloaction需要用户授权scope.userLocation)结合map组件能够得到用户的详细定位 & ...

  8. #PHP#微信支付 第二篇 JSAPI 调用统一下单接口获取预支付交易数据

    上一篇讲到成功获取 openid,本篇要调用微信统一接口创建预支付交易单,并获取到相关数据,以便(后边)在微信内调起H5支付 第三步,调用微信统一下单接口创建预支付交易单 微信统一下单API是微信支付 ...

  9. .Net微信网页开发之JSSDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取讲解

    前言: 因为接下来会有几篇关于微信JS-SDK功能使用的文章,主要会对微信分享,获取设备信息,获取地理位置,微信扫一扫这几个功能进行讲解.而这几个功能都是围绕着微信JS-SDK实现的,首先使用微信JS ...

随机推荐

  1. [Core] .NET Core & VS Code 之路(2) Web API

    开发Core项目的条件 Visual Studio 2015 Update 3 .NET Core 1.0.0 - VS 2015 Tooling Preview 2 看到VS包的体积,以及不想往下走 ...

  2. sprint3个人总结

    转眼间,这个学期又过去了,真的是忙碌的一个学期,却是有点充实,特别是我们的软件工程这门课程,我们这次做的是公众号开发功能,说实话,当初对这个项目有兴趣是因为自己也在弄自己一个300多人的公众号,对于这 ...

  3. Leetcode: Encode String with Shortest Length && G面经

    Given a non-empty string, encode the string such that its encoded length is the shortest. The encodi ...

  4. mpt_voronoi demo

    % %demo1% A=rand(3,10);% pbound=Polyhedron([0 0 0;150 0 0;150 150 0;0 150 0; 0 0 1;150 0 1;150 150 1 ...

  5. c#序列化json字符串及处理

    上面提到的第四篇文章最后有个解析数组的例子,出现了 .First.First.First.First.Children(); 我表示很晕,网上找的的例子大多数是关于JObject的,但是我很少看到JA ...

  6. PHP扩展开发及内核应用

    目录中汉字部分代表已经翻译完成的章节,带链接的表示已经发布的,未待链接的表示正在校正即将发布的. PHP的生命周期 让我们从SAPI开始 PHP的启动与终止 PHP的生命周期 线程安全 小结 PHP变 ...

  7. 飞机大战编写以及Java的面向对象总结

    面向对象课程完结即可编写一个简单的飞机大战程序.我觉得我需要总结一下 飞机大战中类的设计: 父类:FlyingObject(抽象类) 接口:Award .Enemy 子类:Hero.Bullet.Ai ...

  8. Java 获取两个日期之间的日期

    1.前期需求,两个日期,我们叫他startDate和endDate,然后获取到两个日期之间的日期 /** * 获取两个日期之间的日期 * @param start 开始日期 * @param end ...

  9. bzoj 1162 network

    树上的区间第k小数,以前写的主席树是一直MLE的,后来看到一种在初始化的时候的优化:直接DFS这颗树,得到每个点的主席树,然后更新的时候另外对DFS序建主席树,答案加上初始每个点的主席树,这样在初始化 ...

  10. 一场属于HTML5守望者的盛宴——记图灵参加HTML5峰会

    2013年8月,北京正是一个火热的季节.一场火热的盛会,HTML5 峰会如约来袭.这是一场属于 HTML5 守望者的盛宴!HTML5作为一项新兴的技术,其未来是光明的,但是道路却是曲折的.需要标准的不 ...