使用当前浏览器不支持控件访问网页时如何通过修改地理位置坐标改变当前城市

javaweb项目中,用户第一次访问,如何获取到用户当前的城市!
javaweb项目中,用户第一次访问,如何获取到用户当前的城市!
各种码友好!
小弟有个问题,用户第一次输入我们项目的地址 localhost:8080/xxxx/xxx.html
我如何获取该用户的城市code参数,并且在控制层进行处理。IP地址的感觉蛮麻烦的,js的话,这么样在进入控制层之前获取到code参数?
淘宝IP地址库/instructions.php
讲讲大体的思路, 暂时没有实践过。
网页加载时,通过HTML5 Geolocation来获取用户当前坐标,然后可以调用腾讯地图索引API来获取当前地理位置,然后主动发给后端。
当然,要用户允许浏览器获取当前地理位置才行,同时浏览器得支持Geolocation这个API。
Copyright & 2016 phpStudy  本小菜刚开始学习HTML5,现在对其中的Geolocation颇感兴趣,结合Google Map的API实现基本的地图定位功能。
1.获取当前地理位置
  调用方法 void getCurrentPosition(onSuccess, onError, options);即可。
  其中onSuccess是获取当前位置信息成功时执行的回调函数,onError是获取当前位置信息失败时所执行的回调函数,options是一些可选熟悉列表。其中第二和第三个参数为可选属性。
  在onSuccess回调函数中,用到了参数position,代表一个具体的position对象,表示当前位置。其具有如下属性:
latitude:当前地理位置的纬度。
longitude:当前地理位置的经度。
altitude:当前位置的海拔高度(不能获取时为null)。
accuracy:获取到的纬度和经度的精度(以米为单位)。
altitudeAccurancy:获取到的海拔高度的经度(以米为单位)。
heading:设备的前进方向。用面朝正被方向的顺时针旋转角度来表示(不能获取时为null)。
speed:设备的前进速度(以米/秒为单位,不能获取时为null)。
timestamp:获取地理位置信息时的时间。
  在onError回调函数中,用到了error参数。其具有如下属性:
code:错误代码,有如下值。
用户拒绝了位置服务(属性值为1);
获取不到位置信息(属性值为2);
获取信息超时错误(属性值为3)。
message:字符串,包含了具体的错误信息。
  在options参数中,可选属性如下:
enableHighAccuracy:是否要求高精度的地理位置信息。
timeout:设置超时时间(单位为毫秒)。
maximumAge:对地理位置信息进行缓存的有效时间(单位为毫秒)。
  其中注意要写上如下代码,判断浏览器是否支持HTML5获取地理位置信息,以兼容较早不支持的浏览器。
if (navigator.geolocation) {
//获取当前地理位置信息
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
alert("你的浏览器不支持HTML5来获取地理位置信息。");
&2.调用Google Map API获取当前位置信息
  首先,需要在页面中引用Google Map API的脚本文件,导入方法如下所示。
&script type="text/javascript" src="/maps/api/js?sensor=false"&&/script&
  其次,设定地图参数,设定方法如下所示。
//指定一个google地图上的坐标点,同时指定该坐标点的横坐标和纵坐标
var latlng = new google.maps.LatLng(coords.latitude, coords.longitude);
var myOptions = {
//设定放大倍数
center: latlng,
//将地图中心点设定为指定的坐标点
mapTypeId: google.maps.MapTypeId.ROADMAP //指定地图类型
  最后,创建地图,并在页面中显示,创建方法如下所示。
//创建地图,并在页面map中显示
var map = new google.maps.Map(document.getElementById("map"), myOptions);
  最后的最后,献上本次示例所有代码。代码如下所示。
&!DOCTYPE html&
&html xmlns="http://www.w3.org/1999/xhtml"&
&meta http-equiv="Content-Type" content="text/ charset=utf-8" /&
&title&获取当前位置并显示在google地图上&/title&
&script type="text/javascript" src="/maps/api/js?sensor=false"&&/script&
&script type="text/javascript"&
function init() {
if (navigator.geolocation) {
//获取当前地理位置
navigator.geolocation.getCurrentPosition(function (position) {
var coords = position.
//console.log(position);
//指定一个google地图上的坐标点,同时指定该坐标点的横坐标和纵坐标
var latlng = new google.maps.LatLng(coords.latitude, coords.longitude);
var myOptions = {
//设定放大倍数
center: latlng,
//将地图中心点设定为指定的坐标点
mapTypeId: google.maps.MapTypeId.ROADMAP //指定地图类型
//创建地图,并在页面map中显示
var map = new google.maps.Map(document.getElementById("map"), myOptions);
//在地图上创建标记
var marker = new google.maps.Marker({
position: latlng,
//将前面设定的坐标标注出来
map: map //将该标注设置在刚才创建的map中
//标注提示窗口
var infoWindow = new Window({
content: "当前位置:&br/&经度:" + latlng.lat() + "&br/&维度:" + latlng.lng()
//提示窗体内的提示信息
//打开提示窗口
infoWindow.open(map, marker);
function (error) {
//处理错误
switch (error.code) {
alert("位置服务被拒绝。");
alert("暂时获取不到位置信息。");
alert("获取信息超时。");
alert("未知错误。");
alert("你的浏览器不支持HTML5来获取地理位置信息。");
&body onload="init()"&
&div id="map" style="width: 800 height: 600px"&&/div&
作 & 者:出 & 处:欢迎任何形式的转载,但请务必注明出处。
阅读(...) 评论()JavaScript地理位置信息API – WEB骇客使用JS获取当前地理位置方法汇总
投稿:hebedich
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了使用JS获取当前地理位置方法汇总,需要的朋友可以参考下
今年的项目开发中,初步接触了移动端WEB开发,也就边学习HTML5边开发,主要使用了JQuery Mobile技术,发现这个不适合做互联网产品,大部分样式都需要重写,只用了部分功能。手机端WEB开发过程中第一次接触了定位功能,通过各大搜索引擎发现手机端定位都是通过浏览器的定位,而用在PC端浏览器第一次会弹出提示“是否开启定位功能”,Boss看到这个提示,却觉得对用户的体验效果不好,不好那我换一种方式实现不就好了,这又不是多大的事,而Boss的脸色就大变,就说:不应该有这样的体验。我们这样做不都是为了赶时间,能够尽快将新功能发布嘛。
  1.手机WEB定位方法:
var getLocation = function (successFunc, errorFunc) { //successFunc获取定位成功回调函数,errorFunc获取定位失败回调
&&& //首先设置默认城市
&&& var defCity = {
&&&&&&& id: '000001',
&&&&&&& name: '北京市',
&&&&&&& date: curDateTime()//获取当前时间方法
&&& //默认城市
&&& $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { expires: 1, path: '/' });
&&& if (navigator.geolocation) {
&&&&&&& navigator.geolocation.getCurrentPosition(function (position) {
&&&&&&&&&&& var lat = position.coords.
&&&&&&&&&&& var lon = position.coords.
&&&&&&&&&&& //var map = new BMap.Map("container");&& // 创建Map实例
&&&&&&&&&&& var point = new BMap.Point(lon, lat); // 创建点坐标
&&&&&&&&&&& var gc = new BMap.Geocoder();
&&&&&&&&&&& gc.getLocation(point, function (rs) {
&&&&&&&&&&&&&&& var addComp = rs.addressC
&&&&&&&&&&&&&&& var curCity = {
&&&&&&&&&&&&&&&&&&& id: '',
&&&&&&&&&&&&&&&&&&& name: addComp.province,
&&&&&&&&&&&&&&&&&&& date: curDateTime()
&&&&&&&&&&&&&&& };
&&&&&&&&&&&&&&& //当前定位城市
&&&&&&&&&&&&&&& $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
&&&&&&&&&&&&&&& //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
&&&&&&&&&&&&&&& if (successFunc != undefined)
&&&&&&&&&&&&&&&&&&& successFunc(addComp);
&&&&&&&&&&& });
&&&&&&& },
&&&&&&& function (error) {
&&&&&&&&&&& switch (error.code) {
&&&&&&&&&&&&&&& case 1:
&&&&&&&&&&&&&&&&&&& alert("位置服务被拒绝。");
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& case 2:
&&&&&&&&&&&&&&&&&&& alert("暂时获取不到位置信息。");
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& case 3:
&&&&&&&&&&&&&&&&&&& alert("获取位置信息超时。");
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& default:
&&&&&&&&&&&&&&&&&&& alert("未知错误。");
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&& }
&&&&&&&&&&& var curCity = {
&&&&&&&&&&&&&&& id: '000001',
&&&&&&&&&&&&&&& name: '北京市',
&&&&&&&&&&&&&&& date: curDateTime()
&&&&&&&&&&& };
&&&&&&&&&&& //默认城市
&&&&&&&&&&& $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
&&&&&&&&&&& if (errorFunc != undefined)
&&&&&&&&&&&&&&& errorFunc(error);
&&&&&&& }, { timeout: 5000, enableHighAccuracy: true });
&&& } else {
&&&&&&& alert("你的浏览器不支持获取地理位置信息。");
&&&&&&& if (errorFunc != undefined)
&&&&&&&&&&& errorFunc("你的浏览器不支持获取地理位置信息。");
var showPosition = function (position) {
&&& var lat = position.coords.
&&& var lon = position.coords.
&&& //var map = new BMap.Map("container");&& // 创建Map实例
&&& var point = new BMap.Point(lon, lat); // 创建点坐标
&&& var gc = new BMap.Geocoder();
&&& gc.getLocation(point, function (rs) {
&&&&&&& var addComp = rs.addressC
&&&&&&& var curCity = {
&&&&&&&&&&& id: '',
&&&&&&&&&&& name: addComp.province,
&&&&&&&&&&& date: curDateTime()
&&&&&&& };
&&&&&&& //当前定位城市
&&&&&&& $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
&&&&&&& //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
var showPositionError = function (error) {
&&& switch (error.code) {
&&&&&&& case 1:
&&&&&&&&&&& alert("位置服务被拒绝。");
&&&&&&&&&&&
&&&&&&& case 2:
&&&&&&&&&&& alert("暂时获取不到位置信息。");
&&&&&&&&&&&
&&&&&&& case 3:
&&&&&&&&&&& alert("获取位置信息超时。");
&&&&&&&&&&&
&&&&&&& default:
&&&&&&&&&&& alert("未知错误。");
&&&&&&&&&&&
&&& var curCity = {
&&&&&&& id: '000001',
&&&&&&& name: '北京市',
&&&&&&& date: curDateTime()
&&& //默认城市
&&& $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
前提要引入百度API:&script src="" type="text/javascript"&&/script&
  2.PC端通过IP实现方法:
  采用腾讯提供的接口,这个目前已经不能使用了  
&script type="text/javascript" src="&
&script type="text/javascript"&
&&& document.write(IPData[0]);&&& //显示IP地址
&&& document.write(IPData[2]);&&& //显示省
&&& document.write(IPData[3]);&&& //显示市
  采用新浪接口:
  多地域测试方法:
&script type="text/javascript"&
&&&&&&& $.getScript('http://int..cn/iplookup/iplookup.php?format=js', function(_result) {
&&&&&&&&&&& if (remote_ip_info.ret == '1') {
&&&&&&&&&&&&&&& alert('国家:' + remote_ip_info.country + '&BR&省:' + remote_ip_info.province + '&BR&市:' + remote_ip_info.city + '&BR&区:' + remote_ip_info.district + '&BR&ISP:' + remote_ip_info.isp + '&BR&类型:' + remote_ip_info.type + '&BR&其他:' + remote_ip_info.desc);
&&&&&&&&&&& } else {
&&&&&&&&&&&&&&& alert('没有找到匹配的IP地址信息!');
&&&&&&&&&&& }
&&&&&&& });
  网易有道IP地址接口(这个有待测试)
&&&& 淘宝请求接口(GET)
var ip = "124.127.108.133";
&&&&&&&&&&& var url = "=" +
&&&&&&&&&&& $.getJSON(url, function (json) {
&&&&&&&&&&&&&&& var myprovince2 = json.data.
&&&&&&&&&&&&&&& var mycity2 = json.data.
&&&&&&&&&&&&&&& alert("您所在的城市是:" + myprovince2 + mycity2);
&&&&&&&&&&& });
  太平洋IP地址库API接口
  地址字符串]
  另外:还有google、搜狐等提供对应的接口,大家可以自己试一试。
  搜狐IP地址查询接口(默认GBK):
&&&& 搜狐IP地址查询接口(可设置编码):
&&&& 搜狐另外的IP地址查询接口:
  3.获取客户端IP方法
var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' + Math.random();
&&&&&&&&&&& $.getJSON(url, function(data) {
&&&&&&&&&&&&&&& alert(data.Ip);
&&&&&&&&&&& });
  今天就写到这吧,还有好多工作需要去完成,等有时间了可以试试其它接口。欢迎大家来拍砖,提供更好的方法。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 如何改变默认浏览器 的文章

 

随机推荐