前言

目前我们做m端时都会用到定位,当用户第一次打开h5页面时会启动gps定位,并结合百度map来查找城市。按照我们的逻辑思路就是gps定位获取经纬度,传到后台调用百度的一个接口查找城市名称。

1、查询得到城市名称,我们根据城市名称在我们自己的数据库里再查询对应的城市id(查询会很频繁,可以基于xml 缓存查询,也可以放到redis里)

2、为了保险起见,我们也会在自己的库里根据经纬度维护一套城市信息,防止接口不可用时不影响定位。

H5 GPS定位

  (function () {
var
isGeolocation = false,
lat = 0,
lng = 0,
coords = null; if (navigator.geolocation) { isGeolocation = true; };
if (isGeolocation) {
function getPosSuccess(position) {
coords = position.coords;
lat = coords.latitude, lng = coords.longitude;
$.ajax({
type: 'GET',
dataType: 'json',
url: '/Home/GetPositionArea',
data: { 'lat': lat, 'lng': lng },
success: function (data) { }
});
};
function getPosError(err) {
switch (err) {
case err.PERMISSION_DENIED:
console.log("您拒绝了共享位置,可手动选择城市。");
break;
case err.POSITION_UNAVAILABLE:
console.log("无法获取当前位置");
break;
case err.TIMEOUT:
console.log("获取位置超时");
break;
default:
console.log("未知错误");
break;
} };
navigator.geolocation.getCurrentPosition(getPosSuccess, getPosError, null);
} else { }; })();

结合百度接口查询具体城市

public JsonResult GetPositionArea(decimal lng, decimal lat)
{
string api =
string.Format(
"http://api.map.baidu.com/geocoder/v2/?output=json&ak=XXXXX&location={0},{1}",
lat, lng); //传入自己的业务参数ak string result = HttpRequestHelper.Get(api); return Json(result, JsonRequestBehavior.AllowGet);
}

H5结合百度map实现GPS定位的更多相关文章

  1. 手机版的百度map封装,使用gps定位

    代码如下,包自己引 包参考 一个百度MAP导航的基础封装 使用的是浏览器调用gps定位 修改了标注的大小 效果如图: 代码...... <!DOCTYPE html> <html&g ...

  2. 如何利用【百度地图API】进行定位?非GPS定位

    原文:如何利用[百度地图API]进行定位?非GPS定位 如果你可以上网,如果你有火狐浏览器,那么恭喜你.你能很容易使用以下代码进行定位! ------------------------------- ...

  3. GPS定位为什么要转换处理?高德地图和百度地图坐标处理有什么不一样?

    GPS定位为什么要转换处理?高德地图和百度地图坐标处理有什么不一样? 先了解一下 高德地图 采用: GCJ-02 (不可逆) 百度百科: http://baike.baidu.com/link?url ...

  4. 使用百度地图结合GPS进行定位

    本文在上文基础上加入GPS定位功能,实现实时定位,代码如下: Activity: package com.home; import android.app.Activity; import andro ...

  5. ionic基于GPS定位并通过百度地图获取定位详细信息

    相信所有的前端攻城狮都会碰到移动端App.里面获取用户定位信息. 那么问题来了,怎么获取用户的定位信息(经纬度)呢. 当然方法有很多,通过百度地图API 以及 高德地图 API都是可以的.但是两个获取 ...

  6. android 基于百度地图api开发定位以及获取详细地址

    一:百度地图开发必须要到百度开发平台android开发api下载相应的库,已经申请百度地图开发key. 二:新建项目baidumaplocation.设计main.xml文件这里注意的是MapView ...

  7. Android开发之位置定位详解与实例解析(GPS定位、Google网络定位,BaiduLBS(SDK)定位)

    在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便.定位一般分为三种发方案:即GPS定位.Google网络定位以及基站定位 最简单的手机定位方式当然是通过GP ...

  8. Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK

    原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  9. 在iOS APP中使用H5显示百度地图时如何支持HTTPS?

    现象: 公司正在开发一个iOSAPP,使用h5显示百度地图,但是发现同样的H5页面,在安卓可以显示出来,在iOS中就显示不出来. 原因分析: 但是现在iOS开发中,苹果已经要求在APP中的所有对外连接 ...

随机推荐

  1. C++静态库与动态库(比较透彻)

    这次分享的宗旨是——让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书<程序员的自 ...

  2. Python 多进程编程之 进程间的通信(在Pool中Queue)

    Python 多进程编程之 进程间的通信(在Pool中Queue) 1,在进程池中进程间的通信,原理与普通进程之间一样,只是引用的方法不同,python对进程池通信有专用的方法 在Manager()中 ...

  3. 51nod1305

    可以暴力,但这里学习了一个新思路,就是把原式进行分解会得到[1/a[i]+1/a[j]],因为向下取整,我们可以发现,1作用于1结果为2,1作用于除了1之外的数结果为1,2作用于2结果为1,所以我们只 ...

  4. 《Miracle_House团队》第一次作业:团队亮相

    Our Team:Miracle_House part 1 团队成员组成: NO.1  汝春瑞   201571030125   (组长) Style:乐观开朗,认真踏实,责任心强,还有就是爱笑.随和 ...

  5. Java并发编程:volatile关键字

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...

  6. Mingw下载

    http://ismdeep.oss-cn-shenzhen.aliyuncs.com/x86_64-5.3.0-release-posix-seh-rt_v4-rev0.7z

  7. RabbitMQ 常用操作

    RabbitMQ简介 1.首先安装erlang rpm -Uvh https://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos ...

  8. 如何减少SQL Server中的PREEMPTIVE_OS_WRITEFILEGATHER等待类型

    在数据库大小分配期间,我正在等待类型PREEMPTIVE_OS_WRITEFILEGATHER.昨天,我将数据库大小配置为供应商建议的值.我们需要将数据库大小设置为700GB,保留150 GB的日志文 ...

  9. 一篇入门 -- Git

    一. Git 介绍 Git作为一款分布式的==版本控制==工具,作为一名程序员,是必须要掌握的. 最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布.最初目的是为更好地 ...

  10. SVN 客户端 TortoiseSVN 的安装和使用

    关于 参考博客:TortoiseSVN新人使用指南 TortoiseSVN 是一个 Apache Subversion(SVN)客户端,实现为Windows外壳扩展.它直观且易于使用,因为它不需要Su ...