
百度地图不支持普通用户使用经纬度坐标,因此普通用户没法获取。
如果想获得当地经纬度坐标数据,可以使用谷歌等支持经纬度坐标的地图。如果谷歌不能直接使用,可以通过奥维地图等调用。
奥维地图同时也支持调用百度地图,并支持在调用的百度地图上使用经纬度坐标。
要先设置代理的
selfmapViewdelegate = self;
[selfmapView setShowsUserLocation:YES];
这样以后你再看就可以在 - (void)mapViewDidStopLocatingUser:(BMKMapView )mapView{} 监听了
比如移动到当前位置:
//定位完成后,移动到当前位置
- (void)mapView:(BMKMapView )mapView didUpdateUserLocation:(BMKUserLocation )userLocation{
CLLocationCoordinate2Dcoor;
coorlatitude = selfmapViewuserLocationcoordinatelatitude;
coorlongitude = selfmapViewuserLocationcoordinatelongitude;
[selfmapViewsetCenterCoordinate:coor animated:YES];
}
1、HTML代码如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" ";2、JS代码如下
<script type="text/javascript">function validate() {
var sever_add = documentgetElementsByName('sever_add')[0]value;
if (isNull(sever_add)) {
alert('请选择地址');
return false;
}
return true;
}
//判断是否是空
function isNull(a) {
return (a == '' || typeof(a) == 'undefined' || a == null) true : false;
}
documentgetElementById('open')onclick = function () {
if (documentgetElementById('allmap')styledisplay == 'none') {
documentgetElementById('allmap')styledisplay = 'block';
} else {
documentgetElementById('allmap')styledisplay = 'none';
}
}
var map = new BMapMap("allmap");
var geoc = new BMapGeocoder(); //地址解析对象
var markersArray = [];
var geolocation = new BMapGeolocation();
var point = new BMapPoint(116331398, 39897445);
mapcenterAndZoom(point, 12); // 中心点
geolocationgetCurrentPosition(function (r) {
if (thisgetStatus() == BMAP_STATUS_SUCCESS) {
var mk = new BMapMarker(rpoint);
mapaddOverlay(mk);
mappanTo(rpoint);
mapenableScrollWheelZoom(true);
}
else {
alert('failed' + thisgetStatus());
}
}, {enableHighAccuracy: true})
mapaddEventListener("click", showInfo);
//清除标识
function clearOverlays() {
if (markersArray) {
for (i in markersArray) {
mapremoveOverlay(markersArray[i])
}
}
}
//地图上标注
function addMarker(point) {
var marker = new BMapMarker(point);
markersArraypush(marker);
clearOverlays();
mapaddOverlay(marker);
}
//点击地图时间处理
function showInfo(e) {
documentgetElementById('lng')value = epointlng;
documentgetElementById('lat')value = epointlat;
geocgetLocation(epoint, function (rs) {
var addComp = rsaddressComponents;
var address = addCompprovince + addCompcity + addCompdistrict + addCompstreet + addCompstreetNumber;
if (confirm("确定要地址是" + address + "")) {
documentgetElementById('allmap')styledisplay = 'none';
documentgetElementById('sever_add')value = address;
}
});
addMarker(epoint);
}
</script>
将js代码放入到html中,我们可以得到效果图如下:
第一步:现在百度里搜索“百度经纬度获取工具 - 拾取坐标系统”,进入网址。
第二步:在输入框里输入你需要查找经纬度的地址,然后用鼠标点击你要找的地方,这时右上角的输入框中就会出现经纬度,当然你的鼠标也会显示经纬度。
第三步:当然你也可以勾选坐标反查。
第四步:然后再输入经纬度,点击“百度一下”按钮,即可查询到该经纬度的地址了。
第五步:我提供的就只是一般人所需要的,不是编程需要的代码。
要想得到数据必须先得到百度地图的接口,不然怎么调用接口获取数据呢,首先我们在百度首页输入“百度api”回车后第一个就是我们要找的,点击进入。
我们是通过网页获取json数据得到的数据,所以我们选择“开发”-》“Web服务API”点击进入。
进入这个页面后,我们选择“开发指南”-》“Geocoding API”选择这个进入我们想要的接口文档
在这里我们找到通过请求get方式的url,这个url可以通过经纬度获取到地址跟省市,看自己需要什么样的返回格式,有两种,一种是json格式,另一种是xml格式,我们选择json格式的进行测试。
我们直接用url打开,get请求后获取到的数据,可以看到地址省市县这些都有,可以获取经纬度旁边大量的信息。这些显示在页面上的内容我们怎么获取到并加以利用呢。
这里我们写个方法,通过调用百度地图的url获取到我们想要的数据,在获取之前必须先申请ak秘钥,百度的api文档说的很清楚,要先申请了才能使用。
这个是请求url解析获取数据的过程,这个方法截图小编简写了,如果有需要的朋友可以找我要,给我留言就行。
我们在页面上调用这个获取市的方法看看,通过传入经纬度,然后调用百度的api接口,我们可以获取到市的内容。
通过启动tomcat,在地址栏输入访问地址,然后请求得到的数据,地址栏我输入的是南昌市的经纬度,然后返回的是正确的市。这就是我们想要的结果,同样的道理,通过这个方法也能返回地址。
最早地图的数据从哪儿来?
最早的地图从哪儿来?难道每一个POI(Point of Interest:信息点)都需要地图商亲自采集?
曾在四维图新工作过四年的工作人员PH告诉雷锋网,最早的基础数据来自“国家测绘局”,像四维图新这种拥有雄厚政府背景,由国家测绘局于92年创建的唯一专业从事测绘的国家级公司,是直接共享数据,其余厂商或需要购买。
但是从国家测绘局拿到的数据并不是完整数据,像偏远的西南地区、环境恶劣的山区等地,地图数据几近空白,这些就需要地图生产商进行补充。PH表示,早在07、08年左右,中国的地图采集覆盖工作已经基本完成,剩下的就是对现有地图的维护和变更地区的更正。
高德的工作人员称,中国的道路变更速度非常快,保持在每年20%到30%的速度,仅2014年,我国新增93800公里公路、7000公里铁路、551公里地铁。因此对地图的维护也需要耗费大量的人力。
有哪几种数据采集方式?
高德介绍,数据采集可以分为车辆采集、步行采集、航拍、众包等模式。
车采
腾讯地图的Rolleima告诉我们,车采有严格的规范,行驶速度大致在30-60公里/小时。车采工程师和街景车司机配合采集道路街景,随时监控采集成果和设备运作。车采对于天气和能见度的评估要求非常高,像北京PM25超过200的天气,就无法采集,更不用提阴天下雨的了。
在高德的采集车顶上配有全景摄像头,高德的数据采集系统可以获取包含“道路红绿灯”、“指示牌”“测速探测器”等信息的图像视频,激光扫描仪和测距传感器可以测量出街道的宽度、长度、车道线、隔离带等,高精度惯导系统则可以生成街景及三维地图。
步采
街景车无法采集的区域,则需要使用繁重的设备进行人工采集,目前多数城市的街景都是人工采集的成果。工作人员手持 PDA 和相机前往商厦、学校、商场、银行等场所拍摄照片,再录入到数据采集系统。
Rolleima透露,基于采拍工作的特殊性,腾讯地图对采拍人员有一定的要求:
首先形象健康,不可光头、长须;其次,要有良好的行为习惯,与人和善不易与人冲突,耐性好,具有较好的个人修养;而且,执行力强,对自己工作质量要求严格;当然,身体素质也必过硬,起码能背负足够重的采拍机爬山过河。
高德地图的何宁介称,步采的POI信息处理主要分为四种:新增、修改、删除、不变。当步行到某地,发现原来的餐厅被变更成了银行,直接选择餐厅的POI信息,点击删除后,在原位置新增一个银行POI信息,变更就完成了。
航拍
租借飞机进行航空摄影测量是采集中最高端的做法,目前市场上提供商用的三维地图主要是卫片(卫星拍摄),其分辨率近50公分。不过基于国家安全的考虑,航拍在很多地区都是被限制的。
航拍主要是强化地图的精细度。比如东莞的很多地级市,它的楼密集到人侧身才能通过,即使是人工的数据采集也很难做到。这种时候只有通过航拍才能获得准确信息。
众包模式
PH向我们介绍,地图生产商除了自己进行地理信息采集,还会进行外包,比如一个城市外包,由当地的人员进行采集,或者外包给物流公司。
物流公司的运输车辆上装有GPS导航仪,只传回GPS信息,没有视频和,这一部分主要是辅助矫正作用。据高德称,目前有 30 多万辆物流车在回传数据,北京 6 万辆出租车也是使用高德导航服务,他们也能传回大量数据。
另一部分众包则来自UGC,主要是用户的报错反馈。由于新浪微博、阿里等公司都采用高德地图的数据,巨大的用户保有量使得高德每天收到大量用户反馈。高德“增值事业部”每位员工每月可以处理约2300条报错。
数据可以直接使用吗?
高德向我们介绍,
“高德外业实地采集人员获取准确数据后,先将数据提交给内业人员进行数据加工处理,再对原始数据经过编辑、赋值等处理,最后得到可以用来导航的地图数据,目前仅仅地图绘制人员就超过500人。之后,地图要经过向国家测绘部门审图、导航电子地图加密、申请获批出版号、自检自查、测试等等环节,最后才能进入市场流通。”
至于街景方面,目前街景地图并不能保证完全的准确率。主要因为有些地方涉及国家安全问题,如保密建筑,油厂等。通过与国家相关安全部门协议,对于这些地方进行纹理移植 *** 作:不能直接表现的地区,用周围的类似景物覆盖。据悉,有些城市,这种需要处理的地方达万次。
同时,街景地图对车牌、人脸等也负有保护隐私的责任,若照片中存在,将进行马赛克处理。
拥堵信息从何而来?
那实时路段的拥堵信息从何而来?当然不是有人在不同的路口蹲守。
首先是磁浮圈。在道路的下端都有埋有“传感器”,用来感知不同路段的车辆;其次是通过交管局的视频,可以监控不同路段的流量,如果有异常直接在地图上进行标记;最后是浮动车,主要指城市装有GPS的出租车,通过监控车辆的异常行驶速度判断路况。
最后分享一个有趣的问题,在街景方面,有人提出,有没有可能,国内几家比较大的地图公司相互合作,你采A城市,我拍B城市,然后互相提供数据,这样还可以节省成本。就职于腾讯地图的Rolleima告诉我们:
很遗憾,不仅仅是国内,在国外也没有看到过共享街景数据的成功合作。Google、Nokia、Bing等等外国街景地图都是各自在采集各自的数据。基于每家公司原始底层的匹配技术不同,数据的共享难度很大,其次,很多公司都在探索街景的盈利模式,所以占有数据的独享权非常必要。
以上就是关于百度地图怎么定位获取当前经纬度全部的内容,包括:百度地图怎么定位获取当前经纬度、百度地图定位位置后,怎么根据定位位置(可以有经纬度)获取附近的道路数据、如何使用百度地图API自动获取地址和经纬度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)