我使用google.loader.ClientLocation进行了一些测试:
但我在测试中得到null:
if (google.loader.ClientLocation)
Run Code Online (Sandbox Code Playgroud)
这是谷歌找不到IP信息时的行为.
我搜索了StackOverflow并且有很多关于它的问题,但没有好的答案.
我在网上搜索了这两个链接:
这似乎说应该使用导航器HTML地理位置.
Google API文档不再提及它了.
我想确认谷歌google.loader.clientlocation是否还在工作?
我的代码如下:
<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
</head>
<body>
<script type="text/javascript">
function geoTest() {
if (google.loader.ClientLocation) {
var latitude = google.loader.ClientLocation.latitude;
var longitude = google.loader.ClientLocation.longitude;
var city = google.loader.ClientLocation.address.city;
var country = google.loader.ClientLocation.address.country;
var country_code = google.loader.ClientLocation.address.country_code;
var region = google.loader.ClientLocation.address.region;
var text = 'Your Location<br /><br />Latitude: ' + latitude + '<br />Longitude: ' + longitude + '<br />City: ' + city + '<br />Country: …Run Code Online (Sandbox Code Playgroud) 这真让我抓狂.到目前为止,我已经删除了1000次此密钥.昨天它就像一个魅力,今天不再是这里是python代码:
from googlemaps import GoogleMaps
gmaps = GoogleMaps("AIzaSyBIdSyB_td3PE-ur-ISjwFUtBf2O0Uo0Jo")
exactaddress ="1 Toronto Street Toronto"
lat, lng = gmaps.address_to_latlng(exactaddress)
print lat, lng
GoogleMapsError: Error 610: G_GEO_BAD_KEY
Run Code Online (Sandbox Code Playgroud)
它现在返回上述错误没有明显的原因.我认为我没有达到请求限制或最大速率为了保持安全,我甚至引入了延迟(1秒)... stil得到相同的错误
有谁知道如何解决这个问题?如果你可以指出我目前正在使用的替代方案,那么必须使用不同的python模块.
谢谢C.
PS:密钥有效,它是客户端密钥,当我在App控制台中启用GoogleMAP API3时,密钥自动启用.对域名或IP没有限制
编辑:所以这是我最终使用的
def decodeAddressToCoordinates( address ):
urlParams = {
'address': address,
'sensor': 'false',
}
url = 'http://maps.google.com/maps/api/geocode/json?' + urllib.urlencode( urlParams )
response = urllib2.urlopen( url )
responseBody = response.read()
body = StringIO.StringIO( responseBody )
result = json.load( body )
if 'status' not in result or result['status'] != 'OK':
return None
else: …Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个地址字段,用户需要输入所需的地址.我使用谷歌地理编码器来获取地址的GPS坐标.但现在我想通过使用地方自动填充功能让用户更轻松.但地方自动填充仅返回地点的地址,ID和地点.
有没有办法使用Places Autocomplete API获取用户选择的地址的GPS坐标?用户从"地方自动填充"中选择地址后,是否必须再次使用地理编码器?
或者,在用户选择地址以获取地址的GPS坐标后,我是否应该再次使用Places API?由于使用限制,我不想向Places API发送多个请求..这是Places API的预期响应.响应中没有GPS坐标.
"status": "OK",
"predictions": [ {
"description": "Paris, France",
"id" : "691b237b0322f28988f3ce03e321ff72a12167fd",
"reference": "CiQYAAAA0Q_JA...kT3ufVLDDvTQsOwZ_tc",
"terms": [ {
"value": "Paris",
"offset": 0
}, {
"value": "France",
"offset": 7
} ],
"types": [ "geocode" ],
"matched_substrings": [ {
"offset": 0,
"length": 5
} ]
}, {
"description": "Paris, TX, United States",
"id" : "518e47f3d7f39277eb3bc895cb84419c2b43b5ac",
"reference": "CjQjAAAAHnbxZZ...BDR3iIOFdMTxwo1jHg",
"terms": [ {
"value": "Paris",
"offset": 0
}, {
"value": "TX",
"offset": 7
}, {
"value": "United States",
"offset": …Run Code Online (Sandbox Code Playgroud) android google-geocoder google-geocoding-api google-places-api
似乎Google API控制台中生成的密钥不再有效.使用不同的密钥(尝试使用服务器和浏览器密钥,但服务器密钥是我需要的),从不同的帐户生成我不断得到以下错误:
使用服务器密钥时出错:
{
"error_message" : "This site or IP is not authorized to use this API key.",
"results" : [],
"status" : "REQUEST_DENIED"
}
Run Code Online (Sandbox Code Playgroud)
使用浏览器密钥时出错:
{
"error_message" : "The provided API key is expired.",
"results" : [],
"status" : "REQUEST_DENIED"
}
Run Code Online (Sandbox Code Playgroud)
这些是此帐户/项目上启用的服务:http://upload.uprise.nl/et2j
这是我正在尝试的网址:https://maps.googleapis.com/maps/api/geocode/json?address = 900 + Maple + Avenue%2C + L7S + 2J8 + Burlington +%28Ontario%29%2C +加拿大电影= UTF8&传感器=假键=的myKey
如果没有密钥,它将一直工作,直到达到我的每日限制(导致OVER_QUERY_LIMIT状态).
有更多的人遇到这种情况吗?
我正在尝试使用Google Places API找到最近的两条街道(基本上是指示最近的交叉点).但是,任何结果只会返回一条"路线",如果有的话.
我想我可以用+或X模式做5个查询,但这很麻烦,不可靠,当然会更快地达到查询限制.
我很想说这是一个刻意的举动,因为API并不是用于导航系统之类的东西(我不想做),但我仍然希望有一种符合TOS标准的方式来获得交集.
旁注 - 似乎指定"types = route"永远不会返回任何结果,这进一步加剧了我的怀疑,即Places实际上只是用于实际的POI,而不是用于导航,尽管服务条款没有提及任何明确的在这方面的限制.
编辑:正如克里斯指出的那样,Geocoding API专门用于地理编码,但除了通过多个查询之外,我仍然没有看到获得最近的十字路口的方法.
每个Google,
"从2018年6月11日开始,您需要使用信用卡启用结算并为所有项目提供有效的API密钥.这将使您能够轻松扩展,减少停机时间并减少性能问题.此外,我们将我们的18个独立API简化为三种产品:地图,路线和地点."
然而,谷歌并没有在任何地方说它是否是一个硬盘.如果我不启用结算帐户而不添加信用卡信息该怎么办?2018年6月11日之后,我仍然可以访问Google API,例如地图,路线,地理编码吗?
google-maps google-maps-api-3 google-geocoding-api google-distancematrix-api
Geocoding v2 API意外停止.
例如 http://maps.google.com/maps/geo?q=27703&output=json&key=AIzaSyBVr3n3IVZzakGvtIWeRaJEXsC63JHZ0w8
从API开始,我无法获得lat.服务器的输出是:
{
"Status": {
"code": 610,
"request": "geocode"
}
}
Run Code Online (Sandbox Code Playgroud)
我搜索status: 610但找不到任何相关信息.
谢谢.
我发现了很奇怪的问题.地理编码API突然停止为克里米亚坐标工作.示例:Simferopol city:
但它适用于乌克兰和俄罗斯的任何其他地方.示例:基辅,乌克兰
最近API工作正常.请告诉我,由于乌克兰的政治事件,这是Google的限制吗?服务应该再次运作,何时?我们的应用程序严格依赖于用户的地理编码位置,此问题会阻止工作流程.
非常感谢!
我有一些代码,我正在从API v2移植到v3.在旧代码中,我们有一个准确性字段,它返回到xml中(不确定名称,但确实代表了各种类型的置信度).在新的API中,我没有看到任何类似的字段.
如果我把"俄勒冈州,美国"放入搜索领域,我会得到5场比赛.前两个是"俄勒冈州,美国"和"俄勒冈州,俄亥俄州,美国".他们都有"partial_match"= false.这似乎不对,一个似乎是偏袒的,一个不是.另外,他们都回来了相同的"location_type"(APPROXIMATE).实际上,所有匹配都显示为非局部且具有相同的位置类型.
我的问题是,结果集中的任何字段是否都会对结果的准确性产生某种信心?在我的示例中,看起来似乎一个结果比任何其他结果更准确 - 以至于输入字符串与返回的QuickAddress字段完全匹配.
视口和边界之间的区别在谷歌地理编码API中有什么区别?
对于大国(美国,俄罗斯),视口与界限不同(加拿大的样本请求:http://maps.googleapis.com/maps/api/geocode/xml?address = Canada&_sensor = false,但适用于较小的国家,地区和城市他们是平等的.
google-maps ×7
geocoding ×3
android ×1
geolocation ×1
google-api ×1
html5 ×1
python ×1
viewport ×1