通过ip得到所在城市,以及城市所在经纬度坐标(监控系统中用的该代码,小航哥)
监控系统中就是利用的该段代码,实现通过ip得到所在城市,以及城市所在经纬度坐标,最后得以利用echarts实现模拟迁移的效果
api官方介绍: http://lbsyun.baidu.com/index.php?title=webapi/ip-api
package org.logMonitor.utils; import net.sf.json.JSONException;
import org.json.JSONObject;
import java.io.*;
import java.net.URL;
import java.nio.charset.Charset; /**
* Created by lenovo on 2018/1/21.
* 通过ip得到所在城市,以及城市所在经纬度坐标
*/
public class AddressUtilsBaidu {
public static String getAddrName(String ip) {
try{
//这里调用百度的ip定位api服务 详见 http://api.map.baidu.com/lbsapi/cloud/ip-location-api.htm
JSONObject json = readJsonFromUrl("http://api.map.baidu.com/location/ip?ak=iTrwV0ddxeFT6QUziPQh2wgGofxmWkmg&ip="+ip+"&coor=bd09ll");
/* 获取到的json对象:
* {"address":"CN|河北|保定|None|UNICOM|0|0",
* "content":{"address_detail":{"province":"河北省","city":"保定市","street":"","district":"","street_number":"","city_code":307},
* "address":"河北省保定市","point":{"x":"12856963.35","y":"4678360.5"}},
* "status":0}
*/ JSONObject content=json.getJSONObject("content"); //获取json对象里的content对象
JSONObject addr_detail=content.getJSONObject("address_detail");//从content对象里获取address_detail
String city=addr_detail.get("city").toString(); //获取市名,可以根据具体需求更改,如果需要获取省份的名字,可以把“city”改成“province”...
JSONObject point=content.getJSONObject("point");//从content对象里获取point经纬度
String x=point.get("x").toString();//从point对象里获取x经度
String y=point.get("y").toString();//从point对象里获取y纬度
return city+"经度"+x+"纬度"+y;
}catch (Exception e){
return "内网IP";
} }
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
InputStream is = null;
try {
is = new URL(url).openStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
//关闭输入流
is.close();
}
}
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
} public static void main(String[] args) throws IOException, JSONException {
//System.out.println(getAddrName("192.168.2.112"));
System.out.println(getAddrName("122.49.20.247"));
} }
,
通过ip得到所在城市,以及城市所在经纬度坐标(监控系统中用的该代码,小航哥)的更多相关文章
- echarts3.8.4实现城市空气质量(结合百度地图bmap.js,小航哥)
(小航哥自己实现的)为了事先地图效果,需要以下准备: 用百度地图作为地图,需要 1.bmap.min.js(下载地址https://github.com/ecomfe/echarts ,GitHub上 ...
- Android中由IP地址查询经纬度坐标的实例
大家都知道,根据IP地址就可以知道它所在的具体位置,在Android中同样可以由IP地址得到它的位置,即具体的地理经纬度坐标. 本文就直接以代码的方式演示如何根据IP地址查询地理经纬度坐标位置,下面的 ...
- 根据IP获取所在的国家城市
根据IP获取所在的国家城市 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:htt ...
- windows phone 7 定位(获取经纬度),然后找到经纬度所在的位置(城市信息)
原文:windows phone 7 定位(获取经纬度),然后找到经纬度所在的位置(城市信息) 前几天做项目用到, 代码贴给大家. /// <summary> /// 获取当前位置的经纬度 ...
- 微信小程序实现城市定位:获取当前所在的国家城市信息
微信小程序中,我们可以通过调用wx.getLocation()获取到设备当前的地理位置信息,这个信息是当前位置的经纬度.如果我们想获取当前位置是处于哪个国家,哪个城市等信息,该如何实现呢? 微信小程序 ...
- nbtstat -a <IP> 会显示主机名、所在工作组等信息
nbtstat -a <IP> 会显示主机名.所在工作组等信息
- linux c++ curl 根据IP地址获得当前网络的所在的地理位置
注意: 可能每个电脑的默认中文编码格式不同,有时会出现乱码,需要对返回内容进行编码转换,或者换成可指定编码格式的接口.如 搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/c ...
- 根据经纬度坐标获得省市区县行政区划城市名称,自建数据库 java python php c# .net 均适用
目录 步骤一.下载省市区边界数据 步骤二.解析CSV文件导入数据库 步骤三.在程序中根据坐标解析获得城市 在LBS应用中,根据坐标来解析获得对应是哪个城市是一个很常见的功能,比如App里面通过手机定位 ...
- IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息
IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息 /**当获取到定位的坐标后,回调函数*/ - (void)didUpdateBMKUserLocation:(BMKUserLocati ...
随机推荐
- iOS 音频开发
音频基础知识 组成 音频文件的组成:文件格式(或者音频容器) + 数据格式(或者音频编码). 文件格式(或音频容器)是用于形容文件本身的格式. 我们可以通过多种不同的方法为真正的音频数据编码.例如 ...
- 基于AFNetworking封装的网络请求工具类【原创】
今天给大家共享一个我自己封装的网络请求类,希望能帮助到大家. 前提,导入AFNetworking框架, 关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在a ...
- Log4E插件使用记录
在Java编程中,为了调试使用一大堆的System.out.println()或者是System.err.println查看程序的执行,最后由于懒得注释导致发布正式版时需要遍历并注释.而大量的Syst ...
- imx6背光驱动调试
1.内核配置pwm背光驱动make menuconfig:Device Driver ---> Graphics support ---> [*] Backlight & LCD ...
- abp发布需要注意的问题
1>报system.object不存在. 需要从相关目录下面复制System.Runtime.dll eg:C:\Program Files (x86)\Reference Assemblies ...
- 什么时候触发MinorGC?什么时候触发FullGC?
触发MinorGC(Young GC) 虚拟机在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代的所有对象总空间 1.如果大于的话,直接执行minorGC 2.如果小于,判断是否开启 ...
- 百度-设置-搜索设置-每页显示50条-保存设置-打印alert信息-accept确定
一.场景: 代码: #coding:utf-8from selenium import webdriverfrom selenium.webdriver.common.action_chains im ...
- iframe详解
如何查看是否为iframe *使用FireFox组件firebug->firepath 1.Top Window:可直接定位 2.iframe#i:根据id定位 定位方法: switch_to. ...
- Hibernate-缓存/懒加载/抓取策略
懒加载测试: /*类的延迟加载 * * session.get * 1.方法加载出来的对象是class对象 * 2.在session.get方法执行的时候发出sql语句 * 3.class对象是有值的 ...
- jquery 插件 起步代码
/** * Created by W.J.Chang on 2014/6/25. */ ;(function($) { var methods= { check: function() { retur ...