① 百度手机地图api中怎么获得当前位置所属省市
//首先你要有经纬度,这个自己定位出来或者从服务器获取固定的都行,然后加BMKSearchDelegate
#import "BMKGeocodeType.h" //加上这个头文件,地理编码和反地理编码要用上
BMKSearch *search = [[BMKSearch alloc]init];
search.delegate = self;
CLLocationCoordinate2D pt = (CLLocationCoordinate2D){0,0};
pt=(CLLocationCoordinate2D){coordinatex,coordinatey};
NSLog(@"搜索成功?:%d",[search reverseGeocode:pt]);
//上面代码会执行下面的事件
- (void)onGetAddrResult:(BMKAddrInfo*)result errorCode:(int)error{
//具体位置
if (error == 0) {
if (result.addressComponent.streetName!=nil&&result.addressComponent.streetNumber!=nil) {
//具体位置
address = [NSString stringWithFormat:@"当前位置:%@%@",result.addressComponent.streetName,result.addressComponent.streetNumber];
}else{
//具体位置
address = [NSString stringWithFormat:@"当前位置:%@",result.strAddr];
}
}
}
② 高德api地理编码和逆地理编码问题
我利用CoreLocatio下的locManager=[[CLLocationManager alloc]init];
// locManager.delegate=self;
// locManager.desiredAccuracy=kCLLocationAccuracyBest;
// locManager.distanceFilter=5.0f;
// [locManager startUpdatingLocation];
方法获取当前位置的经纬度,然后用
MASearch *maSearch=[[MASearch alloc]init];
*searchOption=[[ alloc]init];
searchOption.config=@"SPAS";
searchOption.x=self.klatitude;
searchOption.y=self.klongitude;
[maSearch :searchOption]
不要多想 这样的提问没有意义
很多烦恼都是我们自己找的
③ 手机软件是如何获取我们的地理位置信息的
手机软件主要是由gps获取地理位置信息的,操作方法如下:
1、首先解锁手机,在桌面上找到并点击“设置”选项。
④ 有关全球定位地理编码的方法都有哪些
地理编码(Geocode)是MapInfo系统的特性之一,它作为MapInfo集成环境中的一个功能菜单项被用户使用.MapInfo中的地理编码概念有别于一般的编码定义,它不是用数字或字母来代表某一地物,而是把点状目标分配给属性数据记录的一行,记录中的字段数据(如建筑物地址)被用来和图形数据库中的相应字段匹配,从而决定该记录点应该在地图上什么位置.在MapInfo中,它的解释如下:所谓地理编码,是指根据各数据点的地理坐标或空间地址(如省市、街区、楼层、房间等),将数据库中数据与其在地图上相对应的图形元素一一对应.也就是说,给每个数据赋以X、Y坐标值,从而确定该数据标在图上的位置的过程.被插入点状目标的表称为靶表,而点的地理坐标来源于一个有地图的源表.地理编码派生点图形目标的派生规则是:面体目标取几何中心点,线体目标取两个结点的中点,点目标取点本身坐标.地理编码(Geocode)是MapInfo系统的特性之一,它作为MapInfo集成环境中的一个功能菜单项被用户使用.MapInfo中的地理编码概念有别于一般的编码定义,它不是用数字或字母来代表某一地物,而是把点状目标分配给属性数据记录的一行,记录中的字段数据(如建筑物地址)被用来和图形数据库中的相应字段匹配,从而决定该记录点应该在地图上什么位置.在MapInfo中,它的解释如下:所谓地理编码,是指根据各数据点的地理坐标或空间地址(如省市、街区、楼层、房间等),将数据库中数据与其在地图上相对应的图形元素一一对应.也就是说,给每个数据赋以X、Y坐标值,从而确定该数据标在图上的位置的过程.被插入点状目标的表称为靶表,而点的地理坐标来源于一个有地图的源表.地理编码派生点图形目标的派生规则是:面体目标取几何中心点,线体目标取两个结点的中点,点目标取点本身坐标.
⑤ 地理编码的详细
又称地址匹配。是为识别点、线、面的位置和属性而设置的编码,它将全部实体按照预先拟定的分类系统,选择最适宜的量化方法,按实体的属性特征和集合坐标的数据结构记录在计算机的储存设备上。
MapInfo中的地理编码
其概念有别于一般的编码定义,它不是用数字或字母来代表某一对象,而是把点状目标分配给属性数据记录的一行,记录中的字段数据被用来和图形数据库中的相应字段匹配,从而决定该记录点应该在地图上什么位置。
也就是说,根据各数据点的地理坐标或空间地址(如省市、街区、楼层、房间等),将数据库中的数据与其在地图上相对应的图形元素一一对应。即给每个数据赋予X、Y值,从而确定该数据标在图上的位置的过程。被插入点状目标的表称为目标表,而点的地理坐标来源于一个有地图的源表。
SuperMap地址匹配模块
超图(SuperMap)最新的SuperMap GIS系列软件中的基础开发平台SuperMap Objects中即含有地址匹配模块(AddressMatching Mole),可以提供中文地址模糊匹配搜索的功能。该功能基于一个地址词典,可以对地图中的多个图层进行地址匹配。
⑥ Android高德通过经纬度获取地理位置
首先导入依赖:
首次导入依赖的过程可能有点慢
然后在需要用到逆地理编码的类或弹窗或其他地方中实现 GeocodeSearch.OnGeocodeSearchListener
监听
例子:
并实现其两个方法:
通过经纬度逆地理编码得到位置核心编码
这样我们就可以实现通过经纬度得到一个位置信息了
福利赠送~~~
1、继承 OnGeocodeSearchListener 监听。
2、构造 GeocodeSearch 对象,并设置监听。
3、通过 GeocodeQuery(java.lang.String locationName, java.lang.String city) 设置查询参数,调用 GeocodeSearch 的 getFromLocationNameAsyn(GeocodeQuery geocodeQuery) 方法发起请求。
4、通过回调接口 onGeocodeSearched 解析返回的结果。
说明:
1)可以在回调中解析result,获取坐标信息。
2)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)
⑦ 手把手教你Tableau自定义地理编码(十九)
Tableau 绘制地图时,支持的地理位置数据有限。当我们需要 Tableau 识别我们自定义的地理位置数据时,我们可以使用 Tableau 的自定义地理编码功能。
Tableau 自定义编码功能主要分为“扩展已有的地理角色”、“添加新的地理角色”、“添加新的分层结构”三种方式。
需要注意的是,扩展已有的地理角色是在系统已有的地理编码上进行添加,所以编码数据的列名都是固定的,这样 Tableau 才可以识别添加上的编码数据。
1、按照上图 1 生成数据后,点击地图,选择地理编码 -- 导入自定义地理编码;
2、选择包含地理编码为 CSV 文件的 文件夹(需要把地理编码文件单独放到文件夹内) 导入;
3、设置维度“城市”的地理角色为城市,并双击城市,会自动生成地图;
操作步骤同上,详情看下图。
操作步骤同上,详情看下图。
只要经纬度就可以了,没有任何限制。
操作步骤同上,详情看下图。
操作步骤同上,详情看下图。
1、自定义编码的文件必须是 CSV 文件,否则导入失败;
2、导入自定义编码时,自定义编码文件需要保存在单独的文件夹内;
3、扩展已有的地理角色,必须按照固定的列名称自建编码文件,否则无法识别;
4、添加新分层结构,可以完全自定义列名,只要有经纬度就可以了。
⑧ 怎么样用Python实现地理编码
引言
今天看到一篇阿里云的文章天下武功,唯快不破,以物流行业为例,分析了 PostgreSQL 与 Greenplum 在地理位置信息处理,最佳路径算法,机器学习等方面的物流行业应用方法。其中提到了地址转换成坐标的问题,更专业些的名词应该是“地理编码”,即知道一个地址,如北京市海淀区上地十街10号,怎么样可以获取到对应的经纬度位置信息(40,116),或者反过来。
地理编码概念
很多地图相关的厂商都提供了相关的API,我们可以直接利用这些API得到这些信息。比如网络的Geocoding API。
Geocoding API是一类接口,用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,用户可以使用C# 、C++、Java等开发语言发送请求且接收JSON、XML的返回数据。Geocoding API包括地址解析和逆地址解析功能:
Paste_Image.png
地理编码:即地址解析,由详细到街道的结构化地址得到网络经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”。同时,地理编码也支持名胜古迹、标志性建筑名称直接解析返回网络经纬度,例如:“网络大厦”地址解析的结果是“lng:116.30815,lat:40.056885” 。
逆地理编码:即逆地址解析,由网络经纬度信息得到结构化地址信息,例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。
不过,需要说明的一点是,若想使用网络的这套API的前提是,有网络账号并申请相应的Key。其实,除了网络之外,谷歌、ESRI、微软的Bing等都有类似的地理编码服务。不过这些服务大多没有专门针对Python的库并且彼此之间的Json结构也不一致。于是乎专治不服的Python大神做了一个专门的地理编码工具geocoder,将这些不同厂商的服务整合统一起来。
地理编码工具geocoder
首先看一下它都支持哪些公司的地理编码服务:
Provider
Optimal
Usage Policy
ArcGIS World
Bai China API key
Bing World API key
CanadaPost Canada API key
FreeGeoIP World
Geocoder.ca CA & US Rate Limit
GeocodeFarm World Policy
GeoNames World Username
GeoOttawa Ottawa
Google World Rate Limit, Policy
HERE World API key
IPInfo World
Mapbox World API key
MapQuest World API key
Mapzen World API key
MaxMind World
OpenCage World API key
OpenStreetMap World Policy
Tamu US API key
TomTom World API key
What3Words World API key
Yahoo World
Yandex Russia
TGOS Taiwan
安装
pip install geocoder
地理编码
import geocoder
g = geocoder.google("1403 Washington Ave, New Orleans, LA 70130")
g = geocoder.arcgis(u"北京市海淀区上地十街10号")
g.latlng
输出为
[29.9287839, -90.08421849999999]
也可以查看完整的geojson
g.geojson
输出为
{'bbox': [-90.0855674802915,
29.9274349197085,
-90.0828695197085,
29.9301328802915],
'geometry': {'coordinates': [-90.08421849999999, 29.9287839],
'type': 'Point'},
'properties': {'accuracy': u'ROOFTOP',
'address': u'1403 Washington Ave, New Orleans, LA 70130, USA',
'bbox': [-90.0855674802915,
29.9274349197085,
-90.0828695197085,
29.9301328802915],
'city': u'New Orleans',
'confidence': 9,
'country': u'US',
'county': u'Orleans Parish',
'encoding': 'utf-8',
'housenumber': u'1403',
'lat': 29.9287839,
'lng': -90.08421849999999,
'location': '1403 Washington Ave, New Orleans, LA 70130',
'neighborhood': u'Garden District',
'ok': True,
'place': u'ChIJGyFHWc2lIIYRYSoneaXAUiw',
'postal': u'70130',
'provider': 'google',
'quality': u'street_address',
'state': u'LA',
'status': 'OK',
'status_code': 200,
'street': u'Washington Ave'},
'type': 'Feature'}
直接用Google尝试查询中文地址时失败
g = geocoder.google(u"北京市海淀区上地十街10号")
g.ok
输出为
False
用网络应该没问题,不过我没有申请相应的key。切换到arcgis,能够成功编码
g = geocoder.arcgis(u"北京市海淀区上地十街10号")
g.latlng
输出为
[40.050934, 116.30079]
逆地理编码
g = geocoder.google([29.9287839, -90.08421849999999], method='reverse')
print g.address
print g.city
print g.state
print g.country
输出为
1403 Washington Ave, New Orleans, LA 70115, USA
New Orleans
LA
US
换成中国的地址
g = geocoder.google([40.050934, 116.30079], method='reverse')
print g.address
print g.city
print g.state
print g.country
输出为
Bai Du Da Sha, Haidian Qu, Beijing Shi, China, 100193
Beijing
Beijing Shi
CN
用arcgis的服务试试
g = geocoder.arcgis([40.050934, 116.30079], method='reverse')
print g.address
print g.city
print g.state
print g.country
输出为
None
北京市
北京市
CHN
Google转换成的是英文,但地址比较全。arcgis虽然是中文,但是详细的地址居然输出为了None,这有个X用。
其他
geocoder 的功能不止于此,它还可以查IP(包括自己的)。
g = geocoder.ip('199.7.157.0')
print g.latlng
print g.city
g = geocoder.ip('me')
print g.latlng
print g.city
输出为
[43.6934, -79.4857]
Toronto
[51.05, 13.75]
Dresden
查询一个城市的空间包围盒
g = geocoder.arcgis(u"山东")
g.bbox
输出为
{'northeast': [38.976997, 121.976998], 'southwest': [33.022997, 116.022998]}
小结
空间信息既可以利用行政区划、自然地理区域等文本信息描述,也可以用坐标系统、数字(邮编等)来标识。利用地理编码技术,可以将空间信息的地理定位要素与相应的文本信息关联起来。本文主要介绍了geocoder地理编码这一小工具,可以方便快捷的利用地图等相关厂商提供的地理编码服务,将文字描述的位置转换成地图上的经纬度,或者通过地图上的某个位置坐标获得相应的位置信息文字描述。
⑨ 什么是地理编码
地理编码指的是将统计资料或是地址信息建立空间坐标关系的过程。
地理编码非同一般意义上的数字编码,不是用数字或字母来代表某一对象,而是跟据各数据点的地理坐标或空间地址(如省市、街区、楼层、房间等),将数据库中的数据与其在地图上相对应的图形元素一一对应。即给每个数据赋予X、Y值,从而确定该数据标在图上的位置的过程。
地理编码又称地址匹配。是为识别点、线、面的位置和属性而设置的编码,它将全部实体按照预先拟定的分类系统,选择最适宜的量化方法,按实体的属性特征和集合坐标的数据结构记录在计算机的储存设备上。
地理编码有正向地理编码、反向地理编码、向量式地理编码、网格式地理编码四种服务类型。
1、正向地理编码,是将地址或地名描述转换为地球表面上相应位置的过程。正向地理编码提供地址定位引擎、行政区划引擎、街道引擎。
2、反向地理编码,是将地球表面的地址坐标转换为标准地址的过程,反向地理编码提供了坐标定位引擎,通过地面某个地物的坐标值来反向查询得到该地物所在的行政区划、所处街道、以及最匹配的标准地址信息。
3、向量式地理编码,是指使用坐标参考系统去定义点、线、面特征的位置。 向量化:指将网格式资料转换为向量形式的过程。
4、网格式地理编码(也叫栅格化地理编码),是指使用建立于矩阵或方格的座标系统来标定位置,这样的位置资料包含栏与列,称为图元。 栅格化:指将向量式资料转换为网格形式的过程。
⑩ 什么是地理编码主要有哪三种方法其算法分别是怎样的
地理编码(Geocoding)又称地址匹配(address-matching),指建立地理位置坐标与给定地址一致性的过程。也是指在地图上找到并标明每条地址所对应的位置。地理编码是GIS中比较重要的一个功能。
地址匹配,或地理编码,就是一个通过地址中某路段的起始,终了位置,并同时考虑到单双号因素,以确定地理位置的过程.
一个大型的政府GIS要求能够将任何数据移植到空间坐标系中,这个过程包括对数据的准确分类和注册,以及使所有的数据能够与一个空间坐标系建立关联;从而保证数据库中的每一个对象被准确无误地叠加在地图上,建立空间信息与非空间信息之间的联系。因此,地理编码在城市空间定位和分析领域内具有非常广泛的应用,如满足城市规划建设以、公安部门119、110报警系统等基于位置的服务要求。
地理编码的方式主要有:反向地理编码服务、向量式地理编码、网格式地理编码
反向地理编码服务
反向地理编码服务实现了将地球表面的地址坐标转换为标准地址的过程,反向地理编码提供了坐标定位引擎,帮助用户通过地面某个地物的坐标值来反向查询得到该地物所在的行政区划、所处街道、以及最匹配的标准地址信息。通过丰富的标准地址库中的数据,可帮助用户在进行移动端查询、商业分析、规划分析等领域创造无限价值。
向量式地理编码
向量式地理编码(vector geocoding)指使用坐标参考系统去定义点、线、面特征的位置。 向量化(vectorization):指将网格式资料转换为向量形式的过程。
网格式地理编码
网格式地理编码(raster geocoding)指使用建立于矩阵或方格的座标系统来标定位置,这样的位置资料包含栏与列,称为图元(pixel)。 栅格化(rasterization)指将向量式资料转换为网格形式的过程。