package com.smm.web.mtower.util;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.URL;

/**

* Created by zhenghao on 2016/6/24.

* 当前位置处理工具

*/

public class LocationUtil {

/**

* 获取指定IP对应的经纬度(为空返回当前机器经纬度)

* @return

*/

public static String[] getIPXY() {

//获取本机公网ip

String ip = getPublicWebIP();

if(ip==null || ip.trim().equals("")) return null;

//百度map ak

String ak = "TjoQT*****************Bj8jV";

try {

URL url = new URL("http://api.map.baidu.com/location/ip?ak=" + ak + "&ip=" + ip + "&coor=bd09ll");

InputStream inputStream = url.openStream();

InputStreamReader inputReader = new InputStreamReader(inputStream);

BufferedReader reader = new BufferedReader(inputReader);

StringBuilder sb = new StringBuilder();

String str;

do {

str = reader.readLine();

sb.append(str);

} while (null != str);

str = sb.toString();

if (str.isEmpty()) {

return null;

}

// 获取坐标位置

int index = str.indexOf("point");

int end = str.indexOf("}}", index);

if (index == -1 || end == -1) {

return null;

}

str = str.substring(index - 1, end + 1);

if (str.isEmpty()) {

return null;

}

String[] ss = str.split(":");

if (ss.length != 4) {

return null;

}

String x = ss[2].split(",")[0];

String y = ss[3];

x = x.substring(x.indexOf("\"") + 1, x.indexOf("\"", 1));

y = y.substring(y.indexOf("\"") + 1, y.indexOf("\"", 1));

return new String[] { x, y };

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

public static String getPublicWebIP() {

String http_url ="http://www.ip.cn/";

try{

URL url = new URL(http_url);

InputStream inputStream = url.openStream();

InputStreamReader inputReader = new InputStreamReader(inputStream);

BufferedReader reader = new BufferedReader(inputReader);

StringBuilder sb = new StringBuilder();

String str;

do {

str = reader.readLine();

sb.append(str);

} while (null != str);

str = sb.toString();

if (str.isEmpty()) {

return null;

}

//从内容中截取代码 117.184.120.234

int start = str.indexOf("") + "".length();

int end = str.indexOf("");

str = str.substring(start,end);

return str;

}catch (Exception e){

e.printStackTrace();

}

return null;

}

public static void main(String[] args) {

String [] location = LocationUtil.getIPXY();

assert location != null;

String widu=location[1];

String jndu=location[0];

System.out.println(widu);

System.out.println(jndu);

}

}

4字节 经纬度_java 获取本机经纬度相关推荐

  1. java windows wifi密码_java 获取本机连接过的所有WiFI密码

    windows,cmd中可以通过命令行输入指令: netsh wlan show profiles 来获取连接过的WiFi名: 然后可以输入命令:获取WiFi名为 哦 的个密码 netsh wlan ...

  2. java根据距离计算经纬度_Java根据两点的经纬度来计算之间的距离

    解决此问题的关键是要理解空间几何模型,在理解空间几何模型的基础上再利用数学公式求取两点之间的值.其解决步骤如下: 1.设两点分别为P1.P2,如果其值是用度分秒形式表示,则需将其转换成十进制度的形式, ...

  3. java date 减小时_java 获取本机当前时间并对小时任意加减

    展开全部 代码如下: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; publ ...

  4. android获取当前位置经纬度,Android中通过GPS或NetWork获取当前位置的经纬度

    今天在Android项目中要实现一个通过GPS或NetWork来获取当前移动终端设备的经纬度功能.要实现该功能要用到Android Framework 中的 LocationManager 类.下面我 ...

  5. python 根据地址求经纬度 谷歌_利用google的API获取世界城市经纬度(python实现)

    google API 需要 --. #-*- coding: utf8 -*- from xml.dom import minidom import urllib2, urllib #这个KEY本来是 ...

  6. tableau应用实战案例(二)-TABLEAU调用中国地图和Python获取地址的经纬度

    前言 如何在TABLEAU中实现调用国内百度地图或者谷歌地图的功能. 谷歌地图我没用过,以前看过<触手可及的大数据分析工具:Tableau案例集>上面有介绍,大家可以去参考.百度地图调用一 ...

  7. java 百度地图 经纬度_Java百度地图经纬度纠偏

    在国内使用电子地图获取到的经纬度都不是真实的经纬度,而是经过一定的算法在真实的经纬度上添加了一个偏移量,且不同的地图有不同的算法.现在告诉大家在java中怎样对百度地图进行纠偏,主要实现将真实的经纬度 ...

  8. uni-app如何获取位置信息(经纬度)

    文章目录 前言 一.相关代码 二.相关的数据返回 三.效果展示 最后 前言 提示:这里可以添加本文要记录的大概内容: 在实际项目中很多时候我们需要获取设备的位置信息,去展示给客户,或者以位置信息为参数 ...

  9. 百度地图Geolocation的getStatus状态值(百度API获取当前位置[经纬度])

    //关于状态码 //BMAP_STATUS_SUCCESS 检索成功.对应数值"0". //BMAP_STATUS_CITY_LIST 城市列表.对应数值"1" ...

最新文章

  1. 这谁顶得住?mybatis十八连环问!
  2. Soj题目分类 python代码)
  3. 金融数学与计算机专业,金融数学专业就业方向及前景分析(解读)
  4. 新浪微博:已经吃下去的,又全都吐出来了!
  5. 软件测试核心之用例设计
  6. 关于springboot与freeMarker的使用
  7. 手机前端框架UI库(Frozen UI、WeUI、SUI Mobile)
  8. series 锐捷rgrsr20_锐捷RG-RSR20-04E路由器
  9. MySQL树结构查询所有叶子节点
  10. 环境与设备监控计算机套定额,第三章建筑设备监控系统安装工程定额.doc
  11. 企业网站建设要点和推广方法有哪些?
  12. NPDP第七章:产品生命周期管理
  13. 形容词,名词记忆(五):ing ,ed 后缀常用词
  14. Android实现键盘拨号
  15. swift实现单例的四种方式
  16. 标品与非标品的定义 标品与非标品的区别,以及标品与非标品直通车运营方案
  17. 【OpenCV--角点特征】
  18. Wireshark怎么抓包、wireshark抓包详细图文教程 [最新绿色版本version 2.6.1 ]
  19. Swift Podcast: Chris Lattner 讲述 Swift 起源故事
  20. 深度学习论文: BAM: Bottleneck Attention Module及其PyTorch实现

热门文章

  1. oracle之单行函数之子查询课后练习2
  2. 前端学习(1312):响应报文
  3. 前端学习(1147):ES6学习目标
  4. 第六十六期:运维专家写给运维工程师的6条人生忠告
  5. 实例2:python
  6. php用ajax方式实现四级联动
  7. [UVA 10891] Game of Sum
  8. 【BZOJ1976】[BeiJing2010组队]能量魔方 Cube 最小割
  9. kafka 常用命令汇总
  10. android深度探索 HAL及驱动开发 第八章