如何通过GPS通过经纬度获取城市POI

经纬度地址查询api,经纬度地址查询接口,免费数据接口api,阿凡达数据
接口状态:
数据类型:
连接App数:
错误码参照
完整教学代码示例:
暂无教学代码,正在拼命添加中....
通用HTTP请求示例代码:
暂无通用HTTP请求示例代码,正在拼命添加中....
常见问题:
暂无相关问题
其他相关内容:
QQ交流群①:
在线客服QQ:
免费赠送(用户申请时,系统自动赠送)
常规套餐包
我们的优势
毫秒级调用速度;安全的数据调用环境;优质、稳定的API数据源。
系统级错误码参照:
错误的请求KEY
该KEY无请求权限
错误的OPENID
应用未审核超时,请提交认证
未知的请求源
被禁止的IP
被禁止的KEY
当前IP请求超过限制
请求超过次数限制,请购买套餐
账户余额不足,请充值
测试KEY超过请求限制
请求错误,请重试
当日调用次数到达上限,请明日重试或联系我们申请更多上限次数
错误码格式说明(示例:200201):
服务级错误(1为系统级错误)
服务模块代码(即数据ID)
具体错误代码
接口地址:/CoordAddress/Lookup
返回格式:JSON/XML
请求方式:GET/POST
请求示例:
/CoordAddress/Lookup?key=[您申请的APPKEY]&lat=40.&lon=116.
接口备注:根据经纬度查询详细地址
请求参数:
应用APPKEY
返回结果格式:可选JSON/XML,默认为JSON
当返回结果格式为JSON时,是否对其进行格式化,为了节省流量默认为false,测试时您可以传入true来熟悉返回内容
请参考JSON返回示例
JSON返回示例:
& &result&: {//查询结果
& & &city&: &北京市&,//市
& & &country&: &中国&,//国家名称
& & &district&: &海淀区&,//区、县
& & &province&: &北京市&,//省
& & &street&: &东北旺路&,//道路
& & &street_number&: &&,//门牌号
& & &country_code&: &0&//国家编号
& &error_code&: 0,//调用结果(请先验证为0,0表示调用成功,且为0时才会返回查询结果)
& &reason&: &Succes&//结果说明java根据地址从百度API获取经纬度
我的图书馆
java根据地址从百度API获取经纬度
代码:package com.pb.import java.io.BufferedRimport java.io.IOEimport java.io.InputStreamRimport java.io.UnsupportedEncodingEimport java.net.MalformedURLEimport java.net.URL;import java.net.URLC/**&* 获取经纬度*&* @author jueyue 返回格式:Map&String,Object& map map.put("status",&* reader.nextString());//状态 map.put("result", list);//查询结果&* list&map&String,String&&&* 密钥:f247cdb592eb43ebac6ccd27f796e2d2&*/&public class GetLatAndLngByBaidu {&
/**& * @param addr& * 查询的地址& * @return& * @throws IOException& */& public Object[] getCoordinate(String addr) throws IOException {& String lng =//经度 String lat =//纬度 String address =& try {& address = java.net.URLEncoder.encode(addr, "UTF-8");& }catch (UnsupportedEncodingException e1) {& e1.printStackTrace();& }& String key = "f247cdb592eb43ebac6ccd27f796e2d2";& String url = String .format("http://api./geocoder?address=%s&output=json&key=%s", address, key);& URL myURL =& URLConnection httpsConn =& try {& myURL = new URL(url);& } catch (MalformedURLException e) {& e.printStackTrace();& }& InputStreamReader insr = BufferedReader br = try {& httpsConn = (URLConnection) myURL.openConnection();// 不使用代理& if (httpsConn != null) {& insr = new InputStreamReader( httpsConn.getInputStream(), "UTF-8");& br = new BufferedReader(insr);& String data =& int count = 1; while((data= br.readLine())!=null){& if(count==5){ lng = (String)data.subSequence(data.indexOf(":")+1, data.indexOf(","));//经度 count++; }else if(count==6){ lat = data.substring(data.indexOf(":")+1);//纬度 count++; }else{ count++; } }& }& } catch (IOException e) {& e.printStackTrace();& } finally { if(insr!=null){ insr.close(); } if(br!=null){ br.close(); } } return new Object[]{lng,lat};& }& public static void main(String[] args) throws IOException { GetLatAndLngByBaidu getLatAndLngByBaidu = new GetLatAndLngByBaidu(); Object[] o = getLatAndLngByBaidu.getCoordinate("成都市天府四街"); System.out.println(o[0]);//经度 System.out.println(o[1]);//纬度 }}输出结果:104.04701 & &&30.548397调用以下路径根据经纬度获取地址,返回数据为JSON格式,http://api./geocoder/v2/?ak=pmCgmADsAsD9rEXkqWNcTzjd&location=30..04701&output=json&pois=1返回结果:{"status":0,"result":{"location":{"lng":104.,"lat":30.},"formatted_address":"四川省成都市武侯区天府四街","business":"","addressComponent":{"city":"成都市","district":"武侯区","province":"四川省","street":"天府四街","street_number":""},"pois":[{"addr":"四川省成都市武侯区天府四街","cp":"NavInfo","distance":"144","name":"保利·心语花园","poiType":"地产小区","point":{"x":104.,"y":30.},"tel":"","uid":"a8d8a","zip":""},{"addr":"四川省成都市武侯区天府四街","cp":"NavInfo","distance":"629","name":"逸都国际","poiType":"地产小区","point":{"x":104.,"y":30.},"tel":"","uid":"e49f869c4f156be9c6effb6b","zip":""},{"addr":"四川省成都市武侯区剑南大道","cp":"NavInfo","distance":"881","name":"世豪广场","poiType":"地产小区","point":{"x":104.,"y":30.},"tel":"","uid":"a2a7b0b167a0e1997adbd206","zip":""},{"addr":"四川省成都市武侯区德赛三街","cp":"NavInfo","distance":"989","name":"顾客停车场","poiType":"交通设施","point":{"x":104.,"y":30.},"tel":"","uid":"d135a6ea00cfe","zip":""}],"cityCode":75}}
TA的最新馆藏[转]&
喜欢该文的人也喜欢&&&&&&&&&&&&&
一个是google以1 亿 2500 万美元收购了Zagat(外国的大众点评网,Zagat已经经营了32年,经覆盖了100个本地市场,拥有13个分类,想收yelp来着,可惜人家不卖,呵呵),弥补自身在本地商家点评内容方面的短板,这样极大的丰富了深度POI数据,随即google map发布了5.10.0版本,允许用户轻松地将评论照片添加到某个位置上,Zagat评论或许会鼓励更多的用户来使用Google Places作为建议并且写评论。Google的意图基本就是把你拉在Google 地图这而不去使用如yelp和Urbanspoon之类的应用,为其google Offer,google places业务和广告业务提供了数据基础和相互促进作用
&另一个是高德软件宣布与招商银行达成战略合作伙伴,将在高德地图的数据中整合招商银行所有营业网点、合作影院和多家特约商户深度POI(Point of Interest)信息,而高德软件将为招商银行提供专业的手机地图API调用服务 &
&&众说周知,POI数据是对于LBS是立足之本,与定位、地图用有同等重要的地位,对于互联网企业,他一头连着消费者,一头连着商家。对于消费者通过互联网企业的地图服务找到想要的POI数据,对于商家通过在互联网企业做广告,让自己在搜索结果中排名靠前,或占据广告位置,对于互联网企业通过
收取广告费用来盈利,google的位置业务在下一盘很大棋啊,,高德的POI数据经营模式也呼之欲出了,
&&看完别人的再来看咱自己的,咱自己的POI数据主要来自购买基础地图时附带的一部分基础POI数据以及单独购买的POI数据,POI数据很贵的,据说一条一块,(高德已经有2000万条了,就只2000万啊),花钱刚刚的,不眨眼啊!而且没有点评类的深度信息,我们是不是也应该向高德学习,发挥我们的优势,
一、建立增值POI平台,进行数据商业化运营、开辟数据获取渠道:
二、通过广大的集客客户来收集POI数据,丰富我们的POI数据,
三、把12580里的黄页信息整理,与POI数据库融合,也是很好的路子。
四、引入爬取方式(由增值POI平台厂家整合其他专业厂家的现有成熟技术);
五、UGC(由增值POI平台开放用户上传接口,并进行数据审核与过滤);
六、基层业务人员扫街
我们拥有以下数据库:纠偏数据库(google地图)精度为0.01:经纬度每变化0.01,取一次偏移值,共980万条,access文件约600mb,误差5~10米。
精度为0.001:经纬度每变化0.001,取一次偏移值,共9亿条,csv文件共20gb,误差约2米。
百度地图纠偏数据库
精度0.01,共2800万条
全国商户数据poi(全部官方同步数据,免费更新)mapabc地图全国兴趣点poi商户数据共1500多万条,包含地址、电话、经纬度、类别,CSV格式。
百度最新poi数据,全国超过2000万条,
如果需要纠偏数据库,请与我联系:QQ
最近收到多个客户投诉,说通过其他企鹅号码联系购买到了不全的数据,在此声明,此类数据为我公司发给其他一些客户的测试数据,是总数据的60%左右,对通过其他方式购买的数据我公司一律不给于免费升级和更新,我公司是全国做数据最好的,技术和实力说明一切
阅读(...) 评论()【项目总结】如何获取地图上的所有POI - sparrowjack - 博客园
1. 地图POI数据是什么,有什么用
& &关于地图数据123,可以参考一下这篇&/question//answer/,回答了很多信息;下图是摘自其中,展示了建立一个地图需要的几个图层数据,从底向上依次是:卫星图,街道信息,建筑信息,地图热点信息;卫星图是图片,建筑信息是几何信息,这两者在平时比较少使用和关心;常用的是有道路信息,可以用来做路径规划和导航,开源地图OpenStreetMap提供了部分道路的免费数据,http://www.openstreetmap.org/;而使用最多的,是地图热点信息,即POI。POI代表一个兴趣点,可以是楼宇、小区、商店、银行、学校等等,其提供的附带信息较为丰富,常有的有&地址&、&经纬度&、&POI类型&等。很多公司都会根据用户的消费地点或活动地点来做深入挖掘,完善用户画像,这时,POI信息显得特别重要。一个很简单的例子,当一个用户一直出现在某学校和它周围,那么很可能是这个学校老师或者学生。
2. 如何获得高德地图所有的POI
& & 高德地图提供了获取矩形范围内所有POI列表的接口,一个请求例子如下:
http:///v3/place/polygon?polygon=108....275355&key=dc44a8ec8db3f9ac6e678&extensions=all&offset=5&page=1
& & 其中polygon是矩形对角顶点,offset是每页显示的poi个数,page是页码。这样获得的一个POI信息如下:
"id": "B000A7BD6C",
"name": "清华大学",
"tag": [],
"type": "科教文化服务;学校;高等院校",
"typecode": "141201",
"biz_type": [],
"address": "双清路30号",
"location": "116.305",
"tel": "010-",
"postcode": [],
"website": "www.",
"email": [],
"pcode": "110000",
"pname": "北京市",
"citycode": "010",
"cityname": "北京市",
"adcode": "110108",
"adname": "海淀区",
"gridcode": "",
"distance": [],
"navi_poiid": "J50F708",
"entr_location": "116..996159",
"business_area": []
& & &但是,这个矩形区域搜索接口有一个限制&&每个矩形只能获得前1000个POI,超过之后,再翻页就没有数据了。所以,想利用这个接口来搞定全国POI,就需要先把全国分为若干矩形,保证每个矩形之内高德地图POI数量小于1000。还好这个接口会返回一个矩形区域内所有POI的数量,使得我可以来做这件事。
& & 将全国划分矩形的思路比较简单,将全国包围盒作为根节点,当POI超过1000时,分成4个相等小矩形,这样递归下去,创建出4叉树。今天计算后,全国、北京、上海划分结果如下图。有了这些矩形,我就可以一个个地翻页得到了。估算了一下,获得高德所有POI,请求数在20万左右,只要很少资源就可以搞定了。
& &用矩形检索的api有一个问题,就是其参数 types 和 keywords 必须两者至少有一个,否则返回poi不全。我在拿到手一个城市的poi后,检测发现有缺的,才发现了这个问题,然而高德在其官方文档上并没有说明,而是在论坛里面讲的。我选择types参数,才把一个城市抓全;抓完后发现,poi的数量确实很庞大,高德号称全国有5000万,我估计没有这么多也起码有2000万。下次自动登录
现在的位置:
& 综合 & 正文
高德地图根据关键字查询,拾取坐标经纬度。
&!DOCTYPE html&
&meta http-equiv="Content-Type" content="text/ charset=utf-8" /&
&title&关键字查询&/title&
&link rel="stylesheet" type="text/css"
href="css/demo.Default.css" /&
type="text/javascript"
src="/maps?v=1.2&key=571bdde43751cabad54cec6"&&/script&
&script language="javascript"&
var marker = new Array();
var windowsArr = new Array();
//基本地图加载
function mapInit() {
mapObj = new AMap.Map("iCenter");
//AMap.event.addListener(mapObj,'click',getLnglat);
function placeSearch() {
mapObj.plugin(["AMap.PlaceSearch"], function() {
MSearch = new AMap.PlaceSearch({ //构造地点查询类
pageSize:10,
pageIndex:1,
city:"021" //城市
AMap.event.addListener(MSearch, "complete", keywordSearch_CallBack);//返回地点查询结果
var searchName = document.all.searchText.//查询关键字
MSearch.search(searchName); //关键字查询
//添加marker&infowindow
function addmarker(i, d) {
var lngX = d.location.getLng();
var latY = d.location.getLat();
var markerOption = {
map:mapObj,
icon:"/images/" + (i + 1) + ".png",
position:new AMap.LngLat(lngX, latY)
var mar = new AMap.Marker(markerOption);
marker.push(new AMap.LngLat(lngX, latY));
var infoWindow = Window({
content:"&h3&&font color=\"#00a6ac\"&
" + (i + 1) + ". " + d.name + "&/font&&/h3&" + TipContents(d.type, d.address, d.tel),
size:new AMap.Size(300, 0),
autoMove:true,
offset:new AMap.Pixel(0,-30)
windowsArr.push(infoWindow);
var aa = function (e) {infoWindow.open(mapObj, mar.getPosition());};
AMap.event.addListener(mar, "click", aa);
AMap.event.addListener(mar,'click',getLnglat);
//回调函数
function keywordSearch_CallBack(data) {
var resultStr = "";
var poiArr = data.poiList.
var resultCount = poiArr.
for (var i = 0; i & resultC i++) {
resultStr += "&div id='divid" + (i + 1) + "' onclick='openMarkerTipById1(" + i + ",this)' onmouseout='onmouseout_MarkerStyle(" + (i + 1) + ",this)' style=\"font-size: 12cursor:padding:0px 0 4px 2 border-bottom:1px solid #C1FFC1;\"&&table&&tr&&td&&img src=\"/images/" + (i + 1) + ".png\"&&/td&" + "&td&&h3&&font color=\"#00a6ac\"&名称: " + poiArr[i].name + "&/font&&/h3&";
resultStr += TipContents(poiArr[i].type, poiArr[i].address, poiArr[i].tel) + "&/td&&/tr&&/table&&/div&";
addmarker(i, poiArr[i]);
mapObj.setFitView();
document.getElementById("result").innerHTML = resultS
function TipContents(type, address, tel) {
//窗体内容
if (type == "" || type == "undefined" || type == null || type == " undefined" || typeof type == "undefined") {
type = "暂无";
if (address == "" || address == "undefined" || address == null || address == " undefined" || typeof address == "undefined") {
address = "暂无";
if (tel == "" || tel == "undefined" || tel == null || tel == " undefined" || typeof address == "tel") {
tel = "暂无";
var str = "
地址:" + address + "&br /&
电话:" + tel + " &br /&
function openMarkerTipById1(pointid, thiss) {
//根据id 打开搜索结果点tip
thiss.style.background = '#CAE1FF';
windowsArr[pointid].open(mapObj, marker[pointid]);
//result中每个div触发的事件
document.getElementById("lngX").value = marker[pointid].getLng();
document.getElementById("latY").value = marker[pointid].getLat();
function onmouseout_MarkerStyle(pointid, thiss) { //鼠标移开后点样式恢复
thiss.style.background = "";
//鼠标在地图上点击,获取经纬度坐标
function getLnglat(e) {
document.getElementById("lngX").value = e.lnglat.getLng();
document.getElementById("latY").value = e.lnglat.getLat();
//关闭页面
function CloseWind(){
var lat = document.getElementById("lngX").
var lon = document.getElementById("latY").
opener.setValue(lat+","+lon);
window.close();
&style type="text/css"&
table{height:100%}
html,body{height:100%;margin:0padding:0px}
.STYLE1 {color: #F3F3F3}
&body onLoad="mapInit();"&
&table width="100%" border="0" cellspacing="0" cellpadding="0" &
&td colspan="2" height="50"&&br&
高德地图:&input type="text" name="searchText"&
&input type="button" value="查询" onClick="placeSearch()"/& 输入位置信息
&br&&br&地图经纬度坐标: X:&input type="text" id="lngX" name="lngX"/& Y:&input type="text" id="latY" name="latY"/&
&input type="button" name="btn_Close" id="btn_Close" value="确定,并关闭页面" onClick="CloseWind();" /& *选择正确地点之后,请点击该按钮
&td width="70%" height="500"& &div
style="height:100%" id="iCenter"&&/div&&/td&
&td valign="top" &&div class="demo_box"&
&div id="r_title"&&b&关键字查询结果:&/b&&/div&
&div id="result" & &/div&
&span class="STYLE1"&&/span&&/td&
稍微修改了一下样式:
demo.Default.css
* Css Document
* @version $Id$
/************************* Just Reset Browser Default CSS : BEGIN ***************************/
background-color:#
body,div,h1,h2,h3,h4,ul,li,form,input,dl,dt,dd,p{
padding:0;
font-family:微软雅黑;
+font-size:14
_font-size:14
list-style:
/*清除浮动*/
.clearfix:after {
content: ".";
visibility:
height: 0;
/* no ie mac \*/
* html .clearfix {
height: 1%;
* + html .clearfix {
height: 1%;
font: 12px/1.5em 微软雅黑,Arial,Verdana,Helvetica,sans-
color:#333;
button,input,select,textarea{
color:#999;
input[type="button"]{
padding:0 5
color:#333;
.demo_box{
/* map style */
width:100%;
height:100%;
border:1px solid #F6F6F6;
line-height:28
padding-left:5
background-color:#D1EEEE;
font-weight:
margin-bottom:5
/* width:661*/
height:500
#result .sub_result{
font-size:12
line-height:20
/*padding:0px 0 4px 2*/
border-bottom:1px solid #C1FFC1;
#result .sub_result .detail{
#result .sub_result .detail h3{
color:#00A6AC;
color:#067EC0;
text-decoration:
text-decoration:
color:#999;
/*** layerout stylesheet ***/
/* 修改背景URL */
div.change{
background-image:url(http://pages.//img/map/marker-h.png);
div.change div{
background-image:url(http://pages.//img/map/marker-h-l.gif);
/*** copied from demo #39 添加自定义点覆盖物 ***/
/* 定义自定义点样式 */
.markerContentStyle{position:}
.markerContentStyle span{
background-color: #FFFFFF;
color:#FF1493;
border:2px solid #D8BFD8;
FONT-FAMILY:华文行楷;
top:-10left:25
white-space:nowrap
-webkit-border-radius:5
border-radius:5
/*** copied from demo #43 添加自定义信息窗体 ***/
/* 定义自定义信息窗体样式 */
z-index: 100;
border: 1px solid #BCBCBC;
box-shadow: 0 0 10px #B7B6B6;
border-radius: 8
background: rgb(255,255,255); /* The Fallback */
background-color: rgba(255,255,255,0.9);
transition-duration: 0.25s;
box-shadow: 0px 0px 15px #0CF;
background: none repeat scroll 0 0 #F9F9F9;
border-bottom: 1px solid #CCC;
border-radius:5px 5px 0 0;
-top div {
display: inline-
color: #333333;
font-size:14
font-weight:
line-height:31
padding:0 10
-top img {
transition-duration: 0.25s;
-top img:hover{
box-shadow: 0px 0px 5px #000;
font-size:12
padding:10
line-height:21
width:100%;
text-align:
-bottom img{
z-index:104;
/*** -------------------------***/
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 java通过ip获取经纬度 的文章

 

随机推荐