如何利用 R 语言来获得某个具体地址的经纬度

Python023

如何利用 R 语言来获得某个具体地址的经纬度,第1张

示例:

//创建类实例

geocoder = new soso.maps.Geocoder(callbacks)

//地址解析

geocoder.getLocation("中国,北京,海淀区,海淀大街38号")

//反地址解析(经纬度到地名转换过程)

//创建对象实例

geocoder = new soso.maps.Geocoder()

//重新设置成功时的回调

geocoder.setComplete(function(result){

alert('成功:'+result.detail.address)

})

geocoder.setError(function(result){

alert('出错啦')

})

//创建坐标对象

可以用ggmap包中的geocode函数,比如geocode("tiananmen")

/**

* 根据地址返回经纬度

* @param addr

* @return 返回经纬度数据, latLng[0]经度,latLng[1]维度

*/

public static String[] getCoordinate(String addr) {

String[] latLng = new String[2]

String address = null

try {

address = java.net.URLEncoder.encode(addr, "UTF-8")

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace()

}

String output = "csv"

//密钥可以随便写一个key=abc

String key = "abc"

String url = "http://maps.google.com/maps/geo?q=" + address + "&output=" + output + "&key=" + key

URL googleMapURL = null

URLConnection httpsConn = null

// 进行转码

try {

googleMapURL = new URL(url)

} catch (MalformedURLException e) {

e.printStackTrace()

}

try {

httpsConn = (URLConnection)googleMapURL.openConnection()

if (httpsConn != null) {

InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream(), "UTF-8")

BufferedReader br = new BufferedReader(insr)

String data = null

if ((data = br.readLine()) != null) {

String[] retList = data.split(",")

/*

* String latitude = retList[2]String longitude =

* retList[3]

*

* System.out.println("纬度"+ latitude)

* System.out.println("经度"+ longitude)

*/

if (retList.length >2 &&("200".equals(retList[0]))) {

latLng[0] = retList[2]

latLng[1] = retList[3]

}

}

insr.close()

}

} catch (IOException e) {

e.printStackTrace()

}

return latLng

}

R语言可以使用spatstat包中的spatstat.geom()函数来实现地理加权回归投影。spatstat.geom()函数接受一个经纬度矢量作为参数,然后根据给定的经纬度坐标,计算出一组投影坐标。这些投影坐标可以用于地理加权回归分析。