调用第三方获取两点坐标距离
2012-09-06 12:36
260 查看
/** * WpnMap.java * 版权所有(C) 2012 * 创建:cuiran 2012-09-04 09:29:45 */ package com.wpnmap.map; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import com.wpnmap.bean.TaxiInfo; import com.wpnmap.util.DistanceComparator; import com.wpnmap.util.Dom4jUtil; import com.wpnmap.util.WebClient; import com.wpnmap.util.WpnConfig; /** * * 计算两点坐标之间距离 * @author cuiran * @version 1.0 */ public class WpnMap { /** * * TODO * @param x1 起点x1坐标 * @param y1 起点y1坐标 * @param taxis 对应出租车坐标的集合 不能为空 * @param resNum 需要取出的数目 resNum=0 取出全部 resNum>0 and resNum<size 取出resNum个 * @return List<TaxiInfo> */ public static List<TaxiInfo> getListRoadLength(String x1,String y1,List<TaxiInfo> taxis,int resNum){ List<TaxiInfo> list=new ArrayList<TaxiInfo>(); List<TaxiInfo> list0=new ArrayList<TaxiInfo>(); try{ StringBuffer strX = new StringBuffer(); StringBuffer strY = new StringBuffer(); Iterator<TaxiInfo> it=taxis.iterator(); while(it.hasNext()){ TaxiInfo info=it.next(); strX.append(x1+","+info.getX()+","); strY.append(y1+","+info.getY()+","); } StringBuffer str = new StringBuffer(); String x=strX.toString(); String y=strY.toString(); x=x.substring(0, x.length()-1); y=y.substring(0, y.length()-1); str.append(WpnConfig.url) .append("?config=CDR") .append("&xs="+x) .append("&ys="+y) .append("&resType=XML") .append("&enc=gbk") .append("&routeType=1") .append("&a_k="+WpnConfig.key); String result = WebClient.GetWebContent(str.toString(),"gbk"); List<String> listLen=Dom4jUtil.getListRoadLength(result); for(int i=0;i<listLen.size();i++){ TaxiInfo info=taxis.get(i); info.setDistance(listLen.get(i)); list.add(info); } Comparator<TaxiInfo> ascComparator = new DistanceComparator(); // 利用Collections类静态工具方法对集合List进行排序 Collections.sort(list, ascComparator); if(resNum>0&&resNum<=list.size()){ for(int i=0;i<resNum;i++){ list0.add(list.get(i)); } }else{ list0=list; } }catch (Exception e) { e.printStackTrace(); } return list0; } /** * * 计算两点坐标距离 * @param x1 起点x1坐标 * @param y1 起点y1坐标 * @param x2 起点x2坐标 * @param y2 起点y2坐标 * @return */ public String getDistance(String x1,String y1,String x2,String y2){ String distance="0"; try{ StringBuffer str = new StringBuffer(); str.append(WpnConfig.url) .append("?config=CD") .append("&x1="+x1) .append("&y1="+y1) .append("&x2="+x2) .append("&y2="+y2) .append("&resType=XML") .append("&enc=gbk") .append("&a_k="+WpnConfig.key); String xml; xml = WebClient.GetWebContent(str.toString(),"gbk"); distance=Dom4jUtil.getDistance(xml); }catch (Exception e) { e.printStackTrace(); } return distance; } /** * TODO * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } }
相关文章推荐
- 调用第三方获取两点坐标距离
- 根据点到已知坐标的两点的距离 获取该点坐标
- mysql 自定义函数获取两点间距离
- 调用第三方webservice服务,获取电话号码归属地简单例子
- 百度地图之调用URL api接口实现周边搜索及计算球面两点间的距离
- 已给出两点坐标,求两点间距离
- vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
- 地图-获取两点之间的距离(经纬度)
- 输入两个坐标(x1,y1),(x2,y2),计算并输出两点间的距离
- 通过gps给定的两个经纬度坐标,计算两点之间的距离
- GPS坐标(大地坐标)转高斯平面坐标,并计算 GPS 坐标(大地坐标)两点间的距离
- R:根据GIS坐标计算两点距离
- 通过百度地图API获取经纬度以及两点间距离
- php调用第三方插件ffmpeg获取上传视频信息方法
- 获取两点(经纬度表示)间距离
- 已知两点坐标,及在从其中一点开始移动的距离,求移动到的坐标
- 百度地图API,获取地址的经纬度,根据坐标位置获取地理位置,,获取两个地理坐标的直线距离
- 根据经纬度坐标计算两点间几何距离 - 椰子树下 - CSDN博客
- 根据两个百度地图坐标计算两点的距离
- ArcEngine获取曲线上任意两点间的距离 .