这是一个更普遍的问题,但我的具体案例涉及使用Google地图API(v2)的ruby/rails应用程序.
我想取一个纬度/长点并得到一个地址(标准转速地理编码),然后再进一步查看该地址,看看是否有与之关联的特定商业名称.
所以,作为一个例子说(数字从无处伸出):
41.23232,-81.98938 => 1500 Prospect Avenue,Cleveland Ohio 44134 =>眨眼Lizard Tavern
有没有标准的方法来进行第二次查找?
我想我可以以编程方式在whitepages dot com上构建反向地址搜索的URL,然后解析响应HTML,但我希望有更好的方法.
更新:
答案已更新,包括Google信息.
给定一系列GPS坐标对,我需要计算多边形的面积(n-gon).这相对较小(不大于50,000平方英尺).通过对来自世界文件的数据应用仿射变换来创建地理编码.
我试图通过将地理编码转换为笛卡尔坐标来使用两步法:
double xPos = (lon-lonAnchor)*( Math.toRadians( 6378137 ) )*Math.cos( latAnchor );
double yPos = (lat-latAnchor)*( Math.toRadians( 6378137 ) );
Run Code Online (Sandbox Code Playgroud)
然后我使用叉积计算来确定面积.
问题是结果的准确性有点偏差(约1%).我有什么可以改进的吗?
谢谢.
我正在尝试使用Google地理编码器API V3根据用户指定的地址在地图上绘制位置,代码如下.
当我直接提出请求时(例如http://maps.googleapis.com/maps/api/geocode/json?address=peterborough&sensor=false),我得到了预期的回复.但是,当我使用下面的代码发出相同的请求时,在getLatLong函数退出后,中间点变量始终是未定义的.
我做错了什么?
function loadFromSearch(address)
{
midpoint = getLatLong(address);
mapCentre = midpoint;
map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
...
}
function getLatLong(address)
{
var result;
var url = 'http://maps.googleapis.com/maps/api/geocode/json?address=' + encodeURIComponent(address) + '&sensor=false'
$.getJSON(url,
function (data){
if (data.status == "OK")
{
result = data.results[0].geometry.location;
}
});
return result;
}
Run Code Online (Sandbox Code Playgroud)
================================================== ================================
鉴于回复,我现在已将代码更新为以下内容.我仍然没有得到任何结果,在Firebug中设置断点结果= data.results [0] .geometry.location; 永远不会受到打击
function loadFromSearch(address)
{
midpoint = getLatLong(address, loadWithMidpoint);
}
function getLatLong(address, callback)
{
var result;
var url = 'http://maps.googleapis.com/maps/api/geocode/json?address=' + encodeURIComponent(address) + …Run Code Online (Sandbox Code Playgroud) 嘿伙计们,我想要获得当前位置的名称.我做了编码获取当前位置(lat,lang)我如何显示相对地名
(即)13.006389 - 80.2575:Adyar,Chennai,India
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
public void onStatusChanged(String provider, int status, Bundle extras) {
// called when the location provider status changes. Possible status: OUT_OF_SERVICE, TEMPORARILY_UNAVAILABLE or AVAILABLE.
}
public void onProviderEnabled(String provider) {
// called when the location provider is enabled by the user
}
public void onProviderDisabled(String provider) {
// called when the location provider is disabled by the user. If it is already disabled, it's called immediately …Run Code Online (Sandbox Code Playgroud) 我搜索了解释和算法如何计算地球的多边形表面积.我发现了这个,这
让我们说我已经得到了凸壳
[56.992666,24.126051], [58.00282,25.930147], [58.787955,25.565078], [59.4997,24.861427], [59.463678,24.711365], [59.395767,24.599837], [56.992666,24.126051]
从第二个链接第一个答案使用Python库,即使我们假设地球是球体(我是对的),第二个答案方法也不会给出相当精确的区域?如果我们假设地球是球体,我可以采取什么方法来计算面积(更便宜)?
另外,我已经查找了不同的库(geotools.org等),但在他们的文档中没有找到有关区域计算的信息.
我和我的一些朋友正在为我们州的农村服务提供商开发一个应用程序来获取他们的客户地址列表并将它们绘制到可以映射的地图上,不仅可以显示位置,还可以与存储在我们服务器上的数据库信息进行交互同样(来自服务电话,交付,销售等的更新).
我们是iPad开发的新手(我们两个人熟悉Android开发,但潜在的客户都投资于iOS技术),我们遇到了地理编码的困境.似乎我们的地理编码计划要么与Google的地理编码/地图API相悖,要么需要高达10,000美元的营业执照.
作为一种解决方法,我们一直在考虑为一个村庄托管一个Open Street Map磁贴服务器作为销售目的的演示文件,并在产品成功时处理任何商业许可.
我想我的问题是出于无知.有没有人有经验创建利用谷歌地图API(地图,方向,地理定位)的本地营利性iOS应用程序?如果是这样,Google是最好的工具套件,还是其他引擎更适合(Bing,MapQuest,Yahoo!)?是否有另一种更好,更简单,更优雅的解决方案来将这些位置放在地图上?
感谢您提供的任何见解.
我已经成功地使用谷歌api进行地理编码,但是当我最初设置它时,我注意到返回的对象与谷歌文档中描述的不完全相同:https://developers.google.com/maps/文档/地理编码/#GeocodingResponses
我用console.dir检查chrome中的对象.
除非我误解(很可能),否则我可以检索所提供地址的纬度和经度,如下所示:
lat = results[0].geometry.location.lat;
lng = results[0].geometry.location.lng;
Run Code Online (Sandbox Code Playgroud)
除了,那是行不通的,当我调查时,我发现lat和lng分别处于results[0].geometry.location.d和results[0].geometry.location.e.
直到今天它都停止了工作.调查我发现lat&lng正在通过results[0].geometry.location.k&返回results[0].location.A.
据推测,这将在不久之后再次破裂.
如果我检查结果[0] .geometry.location.lat它包含:
function (){
\"use strict\";
return this[a]}
Run Code Online (Sandbox Code Playgroud)
有人认识到了吗?
假设我有Google Plus/Places网址(例如https://plus.google.com/111840715355681175070/about?hl=en-US)
这实际上是通过Google Places API(https://developers.google.com/places/documentation/)显示结果的网址.plus.google.com之后的数字序列似乎与id,reference或place_id不对应.
假设我只知道URL,无论如何将其映射到id,reference或placeid,以便我可以通过Places API找到它?
一旦解决方案似乎将URL转储到Places文本搜索中,但这很昂贵(在速率限制方面是10倍乘数)并且看起来很愚蠢.
我可以用来获取城市人口的优质python API是什么?我尝试使用地址解析器,但无法正常工作-不知道为什么。
geocoder.population('San Francisco, California')
Run Code Online (Sandbox Code Playgroud)
退货
'module' object has no attribute 'population'
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我该如何解决?
或者,是否可以为此使用其他Python API?
python geocoding geography google-geocoder google-geocoding-api
我收集了很多点-我想确定每个点最近的城市。我该如何使用BigQuery?