这是基于springmvc+mybatis 的一个controller。如果不是这个框架,可以把方法实体抽到自己写的一个类中,然后再测试

package com.uwitec.controller.system.tools;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLEncoder;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;

import org.codehaus.jackson.JsonNode;

import org.codehaus.jackson.map.ObjectMapper;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.servlet.ModelAndView;

import com.google.gson.Gson;

import com.uwitec.controller.base.BaseController;

import com.uwitec.util.AppUtil;

import com.uwitec.util.Const;

import com.uwitec.util.MapDistance;

import com.uwitec.util.PageData;

import com.uwitec.util.PathUtil;

import com.uwitec.util.TwoDimensionCode;

@Controller

@RequestMapping(value="/tool")

public class ToolController extends BaseController {

/**

* 输入地址返回经纬度坐标

* key lng(经度),lat(纬度)

*/

@RequestMapping(value="/getXY")

public  void getGeocoderLatitude(String address){

BufferedReader in = null;

try {

address = URLEncoder.encode(address, "UTF-8");

URL tirc = new URL("http://api.map.baidu.com/geocoder?address="+ address +"&output=json&key="+"7d9fbeb43e975cd1e9477a7e5d5e192a");

in = new BufferedReader(new InputStreamReader(tirc.openStream(),"UTF-8"));

String res;

StringBuilder sb = new StringBuilder("");

while((res = in.readLine())!=null){

sb.append(res.trim());

}

String str = sb.toString();

if(StringUtils.isNotEmpty(str)){

int lngStart = str.indexOf("lng\":");

int lngEnd = str.indexOf(",\"lat");

int latEnd = str.indexOf("},\"precise");

if(lngStart > 0 && lngEnd > 0 && latEnd > 0){

String lng = str.substring(lngStart+5, lngEnd);

String lat = str.substring(lngEnd+7, latEnd);

}

}

}catch (Exception e) {

e.printStackTrace();

}finally{

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 输入经纬度返回地址

* key lng(经度),lat(纬度)

*/

@RequestMapping(value="/getAdr")

public void getposition(String latitude,String longitude) throws MalformedURLException{

BufferedReader in = null;

URL tirc = new URL("http://api.map.baidu.com/geocoder?location="+ latitude+","+longitude+"&output=json&key="+"E4805d16520de693a3fe707cdc962045");

try {

in = new BufferedReader(new InputStreamReader(tirc.openStream(),"UTF-8"));

String res;

StringBuilder sb = new StringBuilder("");

while((res = in.readLine())!=null){

sb.append(res.trim());

}

String str = sb.toString();

//System.out.println(str);

ObjectMapper mapper = new ObjectMapper();

if(StringUtils.isNotEmpty(str)){

JsonNode jsonNode = mapper.readTree(str);

jsonNode.findValue("status").toString();

JsonNode resultNode = jsonNode.findValue("result");

JsonNode locationNode = resultNode.findValue("formatted_address");

System.out.println(locationNode);

}

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

二:SQL语句计算经纬度距离:2017-04-07

SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY id LIMIT 20

SELECT

(

6371 * acos(

cos(radians(29.490295)) * cos(radians(29.615467)) * cos(

radians(106.581515) - radians(106.486654)

) + sin(radians(29.490295)) * sin(radians(29.615467))

)

)*1000 AS distance

delimiter //

drop function if exists FUN_JW_DIST;

CREATE FUNCTION `FUN_JW_DIST`(lng1 double(15,9), lat1 double(15, 9), lng2 double(15,9), lat2 double(15,9)) RETURNS int(11)

BEGIN

DECLARE dist int;

SET dist = round((

6371 * acos(

cos(radians(lat1)) * cos(radians(lat2)) * cos(

radians(lng1) - radians(lng2)

) + sin(radians(lat1)) * sin(radians(lat2))

)

)*1000);

RETURN (dist);

END;

SELECT FUN_JW_DIST(106.486654 , 29.490295 , 106.581515 , 29.615467);

java 地图坐标转换_百度地图经纬度和地址互转(Java代码)相关推荐

  1. java 地图坐标转换_百度地图坐标和高德地图坐标转换代码 Java实现

    最近做项目需要百度地图坐标转换到高德地图坐标,高德官方也给出了转换接口(百度地图也给出了转换接口) http://lbs.amap.com/api/javascript-api/reference/l ...

  2. java判断地图范围_百度地图java 判断当前位置是否在多边形区域内

    package com.haiyisoft.cAssistant.adapter.hessian; import java.awt.geom.Point2D; import java.util.Arr ...

  3. java开发百度地图瓦片_百度地图API:利用瓦片生成工具,自定义背景图片

    一.制作地图的准备工作 其实,你只需要准备一些地图的瓦片图,就可以了. 用切片工具,把一张完整的图片(最好大一些,清楚一些),切成小片,可使用 TileCutter工具. 二.了解百度地图API的地图 ...

  4. 地图坐标转换问题--百度地图定位偏

    在地图定位开发中,许多定位模块输出坐标系是国际标准 WGS-84 坐标系,所以开发者在国内常见地图定位时,会发现与实际情况有几十米的误差.这并非模块问题, 而是国内地图采用了非标坐标系所致. 国内常见 ...

  5. python爬取百度地图数据_百度地图POI数据爬取

    利用百度地图开发者中心中的web API获取城市POI数据,后期会写出完整的多种参数详细数据获取教程.本次只写出了根据关键词和目的地的数据获取程序. 将爬取下来的数据保存到本地csv文件. 百度API ...

  6. 百度地图保存图片_百度地图与高德地图PK,你pick哪一个?

    随着智能手机的广泛使用,地图软件几乎成为像微信.支付宝等手机必不可少的一款手机应用.而且随着智慧城市的进一步发展,城市的交通系统也变得更加复杂而且日新月异,面对日益复杂的交通系统,手机地图更是人们出行 ...

  7. java 百度地图地址解析_百度地图Java地址解析和经纬度解析

    import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.ne ...

  8. java地图瓦片_百度地图瓦片层级范围对照表

    最近搞地图搞的多,因为项目要求需要做个离线地图来添加覆盖物,网上有篇博客教我们怎么下载瓦片的,对应的是java代码,但是每次操作去看console里的层级和范围超级麻烦,而网上有提供软件下载,感觉有点 ...

  9. java 地图轨迹_百度地图多个坐标连成轨迹

    http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html (js api) http://lbsyun.baidu.com/js ...

最新文章

  1. python实现随机森林、逻辑回归和朴素贝叶斯的新闻文本分类
  2. 数据结构——马踏棋盘题解(贪心算法)
  3. 微信公众号 JSSDK 提示:invalid signature
  4. Runloop循环机制
  5. 15怎么自己画元件_【技术】3.1(1) 先了解清楚了,才能画一个元件-成都单片机开发...
  6. android 前台服务自定义布局不显示_Android前台服务通知未显示
  7. poj Going from u to v or from v to u? 强联通缩点+拓扑排序(或搜索)
  8. Linux编程 文件操作,linux高级编程(文件操作)
  9. vs2015运行项目时出现“编译器失败,错误代码为 1”的解决方案
  10. WCF分布式开发常见错误(17):无法启动MSMQ服务
  11. 第十五章笔记 虚拟机管理
  12. 一年级美术下册教案(新人美版)
  13. 安卓手机怎么投屏台式计算机,怎么将手机投屏到台式电脑上
  14. 黑马程序员JAVAEE企业级开发应用教程笔记
  15. 智能路由器OpenWrt 开发环境 及 编译分析(一)
  16. 【虚拟化生态平台】虚拟化平台esxi挂载USB硬盘
  17. 实例:用C#.NET手把手教你做微信公众号开发(20)--使用微信支付线上收款:jsapi方式
  18. 计算机毕业设计基于asp.net校园二手物品交易平台
  19. Visio安装问题解决:office即点即用安装程序
  20. 云服务器备案和网站备案区别,服务器备案和不备案有什么区别吗?

热门文章

  1. maven_使用Maven Failsafe和JUnit @Category将集成测试与单元测试分开
  2. C语言程序设计会员计费系统,C语言课程设计酒店房间登记与计费管理系统总结报告...
  3. OC Protocol(待续)
  4. Unity 鼠标拖动UI
  5. S曲线加减速算法 VS 梯形加减速算法
  6. sqlmap之tamper脚本编写
  7. CMD命令行简单学习总结
  8. 基于标签的蛋白质定量技术-iTRAQ,TMT
  9. 【数据说第九期】如何分析用户行为数据,来驱动业务增长?
  10. 无线AP(Access Point)是什么