怎么通过地址获取经纬度呢
1. 什么是 *** 服务? Google Maps API 提供这些 *** 服务作为从外部服务中请求 Google Maps API 数据以及在您的地图应用程序中使用它们的接口。这些 *** 服务使用特定网址的 HTTP 请求并将网址参数作为参数提供给服务。一般来讲,这些服务会在 HTTP 请求中以 *** ON 或 XML 的形式传回数据,供您的应用程序进行解析和/或处理。 一个典型的 *** 服务请求通常采用以下形式: htt p:/ /maps.g oogl e.co m/maps/api/service/output?parameters 其中 service 表示所请求的特定服务,output 表示响应格式(通常为 json 或 xml)。 2.地址解析与反地址解析 地址解析是将地址(如“1600 Amphitheatre Parkway, Mountain View, CA”)转换为地理坐标(如纬度 37.423021 和经度 -122.083739)的过程,您可以根据转换得到的坐标放置标记或定位地图。Google Geocoding API 可让您通过 HTTP 请求直接访问地址解析器。此外,该服务还可让您执行反向操作(将坐标转换为地址),此过程称为“反向地址解析”(地址查询)。 3. 地址查询(反向地址解析)请求 Google Geocoding API 请求必须采用以下形式: htt p:/ /maps.g oogl e.c om/maps/api/geocode/output?parameters 其中,output 可以是以下值之一: json(建议)表示以 JavaScript 对象表示法 ( *** ON) 的形式输出 xml 表示以 XML 的形式输出 有些参数是必需的,有些是可选的。根据网址的标准,所有参数均使用字符 () 分隔。下面枚举了这些参数及其可能的值。 Google Geocoding API 使用以下网址参数定义地址查询请求: latlng(必需)- 您希望获取的、距离最近的、可人工读取地址的纬度/经度文本值。 bounds(可选)- 要在其中更显著地偏移地址解析结果的可视区域的边框。 region(可选)- 区域代码,指定为 ccTLD(“顶级域”)双字符值。 language(可选)- 传回结果时所使用的语言。请注意,我们会经常更新支持的语言,因此该列表可能并不详尽。如果未提供 language,地址解析器将尝试尽可能使用发送请求的区域的本地语言。 sensor(必需)- 指示地址解析请求是否来自装有位置传感器的设备。该值必须为 true 或 false。 注意:bounds 和 region 参数只会影响地址解析器返回的结果,但不能对其进行完全限制。 实例一:创建查询坐标(39.910093,116.403945)的地址信息的请求,要求以xml格式输出响应,语言为简体中文(zh-CN)。 注意:经纬度书写的顺序为(纬度,经度)。 实例二:利用C#在客户端程序中创建上述请求。 1 WebClient client = new WebClient(); 2 string url = "htt p:/ /m aps.g oogl e.co m/maps/api/geocode/xm l?latln g=39.910 093,116.403945language=zh-CNsensor=false"; 3 client.Encoding = Encoding.UTF8; 4 string responseTest = client.DownloadString(url); 5. 地址查询(反向地址解析)响应 地址解析响应将以网址请求路径中的 output 标记所指示的格式传回。XML 响应包含一个 GeocodeResponse和两个顶级元素: status 包含请求中状态代码。(非常重要) 零或多个 result 元素,每个元素都包含单独的一组地址解析地址信息和几何图形信息。 地址解析响应对象中的 "status" 字段包含请求的状态,并且可能包含调试信息,以帮助您追溯地址解析未正常工作的原因。 "status" 字段可能包含以下值: "OK" 表示未发生错误;地址成功进行了解析并且至少传回了一个地址解析结果。(判断请求是否成功响应) "ZERO_RESULTS" 表示地址解析成功,但未返回结果。如果地址解析过程中传递的偏远位置 address 或 latlng 并不存在,则会出现这种情况。 "OVER_QUERY_LIMIT" 表示您超出了配额。 "REQUEST_DENIED" 表示您的请求被拒绝,通常是由于缺少 sensor 参数。 "INVALID_REQUEST" 通常表示缺少查询参数(address 或 latlng)。 实例一:在IE浏览中输入上述实例一中的请求,查看响应结果。 浏览器中显示如下信息(该截图只是响应结果的部分信息): 实例二:通过控制台输出上述实例二的响应。 C#代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Net; 6 7 namespace GeoCodeTest 8 { 9 class Program10 {11 static void Main(string[] args)12 {13 WebClient client = new WebClient();14 string url = "ht tp:/ /maps.go ogle.c om/maps/a pi/geocode/xml?latlng=39.910093,116.403945language=zh-CNsensor=false";15 client.Encoding = Encoding.UTF8;16 string responseTest = client.DownloadString(url);17 18 Console.Write("{0}",responseTest);19 20 Console.Read();21 22 }23 }24 } 输出结果(该截图只是响应结果的部分信息): 5. 处理响应结果 通过上述内容,我们已经能够得到xml响应信息。但是,响应结果包含很多信息,因此我们需要解析出需要的地址信息。具体实现过程为: 之一步:判断status的状态信息。 第二步:获取formatted_address 地址信息。 注意:formatted_address是一个字符串,包含此位置的人类可读地址。通常该地址相当于“邮政地址”,有时会因不同国家/地区而存在差异。 实现代码如下: View Code
如何抓取百度地图的坐标(经纬度)信息
1首先在百度首页或其他百度页面进入百度地图页面:
2然后点击地图页面中右上角的“地图api”选项:
3开始进入这里会出来一个弹窗页面,把这个给关闭,右上角有关闭按钮:
4然后在关闭后的页面中往下拉动滚动条,看到下面有个插件与工具栏目,其中里面有个“坐标拾取工具”
5点击坐标拾取工具,会进入到百度地图的拾取坐标系统,默认是北京市的,鼠标在地图中移动就可以看到一个经纬度显示了:
6我们可以选择左上角的更换城市,如深圳:
7然后在搜索框里输入一个地址,就可以查到相关信息,点击那个abcd的坐标,就会显示此地址的具体信息,也会有一个“坐标”选项,就是经纬度了。
javascript 怎么获得手机地理位置 比如经纬度
script
navigator.geolocation.getCurrentPosition( // 该函数有如下三个参数
function(pos){ // 如果成果则执行该回调函数
alert(
' 经度:' + pos.coords.latitude +
' 纬度:' + pos.coords.longitude +
' 高度:' + pos.coords.altitude +
' 精确度(经纬):' + pos.coords.accuracy +
' 精确度(高度):' + pos.coords.altitudeAccuracy +
' 速度:' + pos.coords.speed
);
}, function(err){ // 如果失败则执行该回调函数
alert(err.message);
}, { // 附带参数
enableHighAccuracy: false, // 提高精度(耗费资源)
timeout: 3000, // 超过timeout则调用失败的回调函数
maximumAge: 1000 // 获取到的地理信息的有效期,超过有效期则重新获取一次位置信息
}
);
/script
参考 Lecaf 同学的博文
需要支持HTML5的浏览器才能支持
哪怕支持HTML5的浏览器支持也不一定很好
java代码实现如何获取当前经纬度?
安卓的话可以用GPS取。
import android.app.Activity;
import android.os.Bundle;
import android.location.*;
import android.content.*;
import android.util.Log;
import android.widget.TextView;
public class GPSLocationListenActivity extends Activity implements LocationListener {
LocationManager locman;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
locman = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
}
@Override
protected void onResume(){
if (locman != null){
locman.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,0,this);
}
super.onResume();
}
@Override
protected void onPause(){
if (locman != null){
locman.removeUpdates(this);
}
super.onPause();
}
@Override
public void onLocationChanged(Location location){
TextView textView1 = (TextView)findViewById(R.id.textView1);
textView1.setText("Latitude:Longitude - "
+String.valueOf(location.getLatitude()) +":"+String.valueOf(location.getLongitude()));
TextView textView2 = (TextView)findViewById(R.id.textView2);
textView2.setText(String.valueOf(location.getTime()));
Log.v("----------", "----------");
Log.v("Latitude", String.valueOf(location.getLatitude()));
Log.v("Longitude", String.valueOf(location.getLongitude()));
Log.v("Accuracy", String.valueOf(location.getAccuracy()));
Log.v("Altitude", String.valueOf(location.getAltitude()));
Log.v("Time", String.valueOf(location.getTime()));
Log.v("Speed", String.valueOf(location.getSpeed()));
Log.v("Bearing", String.valueOf(location.getBearing()));
}
@Override
public void onProviderDisabled(String provider){
}
@Override
public void onProviderEnabled(String provider){
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras){
switch(status){
case LocationProvider.AVAILABLE:
Log.v("Status","AVAILABLE");
break;
case LocationProvider.OUT_OF_SERVICE:
Log.v("Status","OUT_OF_SERVICE");
break;
case LocationProvider.TEMPORARI *** _UNAVAILABLE:
Log.v("Status","TEMPORARI *** _UNAVAILABLE");
break;
}
}
}
如何获取经纬度
有时候我们想知道地图上某一点的经纬度,该如何获取呢? *** 很简单:
1.打开Google地图。
2.在地图上找到某地点,在此右键,选择“在此居中放置地图”。
3.在浏览器地址栏输入以下代码,然后回车,弹出框即可得到该点的经纬度:
[javascript]
javascript:void(prompt(”,gApplication.getMap().getCenter()));
[/javascript]