
原创 2016年05月18日 10:25:01
标签:
百度地图 /
微信 /
api /
url /
json
21454
标红的是可以通过经纬度获得当前城市信息(微信定位使用)。
Geocoding API有哪些功能?
Geocoding API包括地址解析和逆地址解析功能。
地址解析是指,由详细到街道的结构化地址得到百度经纬度信息,且支持名胜古迹、标志性建筑名称直接解析返回百度经纬度。例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:11631985,lat:39959836”,“百度大厦”地址解析的结果是“lng:11630815,lat:40056885”
逆地址解析是指,由百度经纬度信息得到结构化地址信息。例如:“lat:31325152,lng:120558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。注意:
1因为Geocoding和反Geocoding使用的门址数据以及算法都不是一样的,所以会出现不能一一对应的现象。
2解析过程中可能会出现一对坐标值对应多个地址门牌信息,本接口将返回距离坐标点最近的一个地址门牌信息。
使用限制
目前无任何使用限制。请申请key,然后使用该接口。
如何使用
第一步,申请key,点击这里获取密钥,申请key需要注册百度账号;
第二步,拼写发送>
第三步,接收>
服务地址
>
>
备注:
1 city属于可选参数,通常情况可以不使用,若解析无结果,请尝试增加此字段。
2 支持名胜古迹、标志性建筑物名称解析返回百度经纬度坐标,如address=“百度大厦”。
3 支持使用“路与路交叉口”方式解析返回百度经纬度坐标,若地址库中存在该地址描述,返回百度经纬度坐标。
4 若解析status字段为OK,若结果内容为空,原因分析及可尝试方法:
5 特别提醒:逆地址解析location参数传入的参数格式是(纬度lat,经度lng)。
接口参数
参数
是否必须
默认值
格式举例
含义
output 否 json json或xml 输出格式为json或者xml
address 是 无 北京市海淀区上地十街10号 根据指定地址进行坐标的反定向解析
location 是 无 3876623,11643213
lat<纬度>,lng<经度> 根据指定坐标来进行地址的解析
city 否 “北京市” “广州市” 地址所在的城市名
key 是 无 8cb976834235d8cbcde2dce4835ae191 用户申请注册的key
上表中address和location两个字段如果同时出现,则优先选择address执行地理编码功能。对于address字段可能会出现中文或其它一些特殊字符(如:空格),所以对于类似的字符都要进行编码处理,编码成 UTF-8 字符的二字符十六进制值,凡是不在下表中的字符都要进行编码。
字符集合
字符
URL非保留字 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 – _ ~
URL保留字 ! ‘ ( ) ; : @ & = + $ , / % # [ ]
附注:
(1) javascript中一般采用encodeURIComponent函数对特殊字符进行编码。
(2) Java中可以使用函数URLEncoderencode对特殊字符进行编码。
(3) C#中可以使用函数>
(4) php中可以使用函数urlencode对特殊字符进行编码。
返回数据说明
返回结果(地址解析的结果)
{status: '字符串状态常量', 取值如下://OK 成功
INVILID_KEY 非法密钥
INVALID_PARAMETERS 非法参数,参数错误时候给出。
result: {
location: {
lat: 纬度:数值,
lng: 经度:数值
},
precise:’位置的附加信息,是否精确查找’(1为精确查找,0为不精确查找),
confidence: 可信度,
level:'级别'
},
}
返回结果(反地址解析的结果)
{status: '字符串状态常量', 取值如下://OK 成功
INVILID_KEY 非法密钥
INVALID_PARAMETERS 非法参数,参数错误时候给出。
result: {
location: {
lat: 纬度:数值,
lng: 经度:数值
},
formatted_address: ‘详细地址描述’,
business: '周围商圈',
addressComponent:{
city:’城市名称’,
district: ‘区县名称’,
province:’省份名称’,
street: ‘街道名称’,
streetNumber: '门牌号码'
},
cityCode: '城市代码'
}
}
接口示例
根据详细地址获取坐标
>
//根据“上地十街10号”返回坐标“lng:116307175, lat:40057098”,以json格式输出
>
//根据“上地十街十号”返回坐标“lng:116307175, lat:40057098”,以xml格式输出
在指定城市内检索详细地址的坐标
>
// 在北京市内根据“上地十街10号”返回坐标“lng:116307175, lat:40057098”,以json格式输出
>
// 在北京市内根据“上地十街10号”返回坐标“lng:116307175, lat:40057098”,以json格式输出
根据特定建筑物获取它的坐标
>
>
>
//根据“北一环路和阜阳路的交叉路口”名称返回坐标“lng:117294364, lat:31885558”,以json格式输入
>
//根据“北一环路和阜阳路的交叉路口”名称返回坐标“lng:117294364, lat:31885558”,以xml格式输入
根据坐标获取它的地址
>
//解析“lat:39983424, lng:116322987”坐标返回“北京市海淀区中关村大街27号1101-08室”,以json格式输出
>
//解析“lat:39983424, lng:116322987”坐标返回“北京市海淀区中关村大街27号1101-08室”,以xml格式输出
地址库里无此数据,本次结果为空。
加入city字段重新解析;
将过于详细或简单的地址更改至省市区县街道重新解析;
逆地址解析:根据坐标获取地址
地址解析:根据地址获取坐标
百度地址>
API是应用程序接口, 所以在应用级
直接与硬件打交道的是WINDOWS DDK, 设备驱动开发包,
这个开发包处理硬件
欲了解更详细的细节, 请参考CSDN:
比如:>
怎么查找,微软的东西,微软在线帮助都很全,API链接如下:
>
public class getInfo
{
/// <summary>
/// 获取CPU序列号
/// </summary>
/// <returns>CPU序列号(string类型 )</returns>
public string getCpuID()
{
string cpuInfo =" ";
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobjectGetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = moProperties["ProcessorId"]ValueToString();
}
return cpuInfoToString();
} /// <summary>
/// 获取硬盘ID
/// </summary>
/// <returns>返回硬盘ID(string类型) </returns>
public string getHDid()
{
string HDid = " ";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1GetInstances();
foreach (ManagementObject mo in moc1)
{
HDid = (string)moProperties["Model"]Value;
}
return HDidToString(); } /// <summary>
/// 获取网卡硬地址
/// </summary>
/// <returns>返回网卡硬地址(string类型)</returns>
public string GetMoAddress()
{
string MoAddress =" ";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc2 = mcGetInstances();
foreach (ManagementObject mo in moc2)
{
if ((bool)mo["IPEnabled"] == true)
{
MoAddress = mo["MacAddress"]ToString();
moDispose();
}
}
return MoAddressToString();
}
}</p>我空间日志写过,希望能帮到你
该程序演示了如何用鼠标来获得任何像素的RGB颜色。该程序使用了计时器,间隔设置为001秒来捕捉事件,使用了GetPixel
,
GetCursorPos
和GetDC
WinAPI调用,来获得屏幕上任何地方的像素的颜色。
option
Explicit
'在表单中加入计时器,使用鼠标移动到屏幕上任何一处,RGB颜色就会显示在表单中的Caption中
'
private
Type
POINTAPI
x
as
Long
y
as
Long
End
Type
'
private
Declare
Function
GetPixel
Lib
"gdi32"
(byval
hdc
as
Long,
_
byval
x
as
Long,
byval
y
as
Long)
as
Long
private
Declare
Function
GetCursorPos
Lib
"user32"
(lpPoint
as
POINTAPI)
as
Long
private
Declare
Function
GetWindowDC
Lib
"user32"
(byval
hwnd
as
Long)
as
Long
'
private
Sub
Form_Load()
Timer1Interval
=
100
End
Sub
'
private
Sub
Timer1_Timer()
Dim
tPOS
as
POINTAPI
Dim
sTmp
as
string
Dim
lColor
as
Long
Dim
lDC
as
Long
'
lDC
=
GetWindowDC(0)
Call
GetCursorPos(tPOS)
lColor
=
GetPixel(lDC,
tPOSx,
tPOSy)
Label2BackColor
=
lColor
'
sTmp
=
Right$("000000"
&
Hex(lColor),
6)
Caption
=
"R:"
&
Right$(sTmp,
2)
&
"
G:"
&
mid$(sTmp,
3,
2)
&
"
B:"
&
Left$(sTmp,
2)
End
Sub
至于获取当前窗口,可以使用
Public
Declare
Function
GetForegroundWindow
Lib
"user32"
()
As
Long
获取当前活动窗体的句柄,再使用GetWindowText的API能获取到相应的标题啦!
Public
Declare
Function
GetForegroundWindow
Lib
"user32"
()
As
Long
Public
Declare
Function
SendMessage
Lib
"user32"
Alias
"SendMessageA"
(ByVal
hwnd
As
Long,
ByVal
wMsg
As
Long,
ByVal
wParam
As
Long,
lParam
As
Any)
As
Long
Public
Const
WM_GETTEXT
=
&HD
Public
Function
GetWin()
As
String
Dim
tmp
As
Long
Dim
iLen
As
Long
Dim
Txt
As
String
tmp
=
GetForegroundWindow
Txt
=
String(255,
Chr(0))
iLen
=
SendMessage(tmp,
WM_GETTEXT,
Len(Txt),
ByVal
Txt)
Txt
=
Left(Txt,
iLen)
GetWin=Txt
End
Function
以上代码是获取当前窗体的标题代码!(这里没使用GetWindowText的API)
以上就是关于百度API根据经纬度取地址问题全部的内容,包括:百度API根据经纬度取地址问题、VB6怎么调用API函数(高分)、linux的api函数哪里有,C和C++怎么调用API等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)