我想获取该地址的纬度和经度:Boulevard de la Marne Zone industrielle, COULOMMIERS, 77120, France
我将 api 添加到我的页面:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script>
Run Code Online (Sandbox Code Playgroud)
当我使用 gmaps 时,结果很好,但是当我想通过 API 检索它时:
geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': myAdress, 'region': 'FR'}, function (results, status) {...});
Run Code Online (Sandbox Code Playgroud)
它执行以下请求:
https://maps.googleapis.com/maps/api/js/GeocodeService.Search?4sBoulevard%20de%20la%20Marne%20%20Zone%20industrielle%20%20COULOMMIERS%2077120%20&7sUS&9sfr-FR&callback=_xdc_._lsoj9s&token=53058
Run Code Online (Sandbox Code Playgroud)
结果是在巴马科附近......
如果我使用视口边界,它会执行以下请求:
https://maps.googleapis.com/maps/api/js/GeocodeService.Search?4sBoulevard%20de%20la%20Marne%20%20Zone%20industrielle%20%20COULOMMIERS%2077120%20&6m6&1m2&1d40.513799&2d-5.844727000000034&2m2&1d51.727028&2d10.854491999999936&7sUS&9sfr-FR&callback=_xdc_._c84svr&token=29019
Run Code Online (Sandbox Code Playgroud)
更好(在法国)但事实并非如此
似乎获得它的唯一方法是执行以下请求: http://maps.googleapis.com/maps/api/geocode/json ?address=Boulevard%20de%20la%20Marne%20Zone%20industrielle,%20COULOMMIERS ,%2077120&组件=国家:FR&传感器=假
我不明白为什么当我使用视口而不是国家时结果不同(两个结果都在视口的边界内)
我目前正在使用 Google Geocoding API,并且很少使用它。限制是每天 2500 个查询,我最多可能在 20-50 个范围内。然后在过去的一周里我经常会收到 OVER_QUERY_LIMIT 错误。我一次只处理 1 个地址,并且没有循环或任何东西。它仅进行一次地理编码并将纬度/经度发送到数据库,之后它将仅作为数据库的参考。谁能告诉我为什么我会收到此错误?
$request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$siteAddress."&sensor=true";
Run Code Online (Sandbox Code Playgroud)
直到大约一周前,这在一个多月的测试中完美无缺。
我有几个页面做同样的事情,但只是在不同的时间出于不同的目的被引用。这是地理编码的所有代码。
$request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$siteAddress."&sensor=true"; // the request URL you'll send to google to get back your XML feed
$xml = simplexml_load_file($request_url) or die("url not loading");// XML request
$status = $xml->status;// GET the request status as google's api can return several responses
if ($status=="OK") {
//request returned completed time to get lat / lang for storage
$lat = $xml->result->geometry->location->lat;
$long = $xml->result->geometry->location->lng;
echo "latitude:$lat, longitude:$long …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Google Geocode Autocomplete 字段添加到我的表单中。
我已经能够让它限制返回到国家 (AU) 的结果,但如果我也能将结果限制到州,那就更好了。(新南威尔士州/新南威尔士州)
这是我目前的initialize()功能:
function initialize() {
var options = {
types: ['geocode'],
componentRestrictions: {country:"AU"}
};
autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('autocomplete')),options);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
fillInAddress();
});
}
Run Code Online (Sandbox Code Playgroud)
我已阅读文档并发现您可以使用types参数来限制结果,但我一直无法弄清楚确切的代码应该是什么。
只需将其更改为:
types: ['administrative_area1':'NSW'], // OR 'New South Wales'
Run Code Online (Sandbox Code Playgroud)
并且与上述类似的各种组合(= 而不是:等)都不起作用..
有人能指出我想要实现的实际语法的正确方向吗?
谢谢。
jquery google-maps autocomplete google-maps-api-3 google-geocoder
我正在利用地理编码 API 来转换和寻址纬度和经度坐标值。我确实收到了结果,但纬度和经度都是空的。其他 SO 帖子提到地理编码器请求是异步的,而 Google 只是返回数据的速度不够快。如果这是问题所在,我不明白如何修复我的代码。
var coords = [];
var address = '1600 Pennsylvania Ave NW, Washington, DC 20500';
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': address}, function( results, status ) {
if (status === google.maps.GeocoderStatus.OK) {
coords[0] = results[0].geometry.location.lat();
coords[1] = results[0].geometry.location.lng();
}
else {
coords = 'Could not retrieve coordinates for: ' + address;
}
});
return coords;
Run Code Online (Sandbox Code Playgroud)
即使我使用众所周知的地址,我仍然得不到纬度或经度。
结果对象:
这真的是问题所在还是我使用的代码有问题?我怎样才能解决这个问题?
我正在使用 google Geocode API 来获取特定地址的经纬度。
当我在谷歌搜索或谷歌地图中搜索“364 S Side Square, Carlinville, IL 62626, USA”时,它会在谷歌搜索结果或地图结果中提供准确的定位。
但同时,当我使用以下请求调用使用地理编码 API 搜索相同的地址时,它给出了“partial_match”:true
任何人都知道为什么它给出 "partial_match" : true 作为回应?
我必须在 API 请求中进行哪些更改才能获得“partial_match”?
api google-maps google-maps-api-3 google-geocoder google-geocoding-api
尝试使用地理编码器从经纬度获取位置时出现此错误。
错误
由 java.io.IOException 引起:grpc 在 com.example.myApp.test.Fragments.DashboardFragment$sendLocationData$1.onSuccess(DashboardFragment.kt:676) 处的 android.location.Geocoder.getFromLocation(Geocoder.java:136) 处失败com.example.myApp.test.Fragments.DashboardFragment$sendLocationData$1.onSuccess(DashboardFragment.kt:81) 在 com.google.android.gms.tasks.zzj.run(未知来源) 在 android.os.Handler.handleCallback( Handler.java:751) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6776) )在 java.lang.reflect.Method.invoke(Method.java) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:1386)
代码
punch_button?.setOnClickListener {
createLocationRequest()
}
protected fun createLocationRequest() {
mLocationRequest = LocationRequest()
mLocationRequest?.interval = 10
mLocationRequest?.fastestInterval = 50
mLocationRequest?.priority = LocationRequest.PRIORITY_HIGH_ACCURACY
val builder = LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest!!)
mLocationCallback = object : LocationCallback() {
override fun onLocationResult(p0: LocationResult?) {
super.onLocationResult(p0)
mCurrentLocation = p0?.lastLocation
}
}
val client = LocationServices.getSettingsClient(context)
val task = client.checkLocationSettings(builder.build())
task.addOnSuccessListener(OnSuccessListener<LocationSettingsResponse> …Run Code Online (Sandbox Code Playgroud) 在 react native 中使用 Geocoder 获取地址时出现此错误:
Object { "code": 4, "message": "地理编码时服务器出错。接收到的数据位于错误的'origin'字段中。检查它以获取更多信息。", "origin": Object { "results":数组 [], "status": "ZERO_RESULTS", }, }
我正在使用“react-native-geocoding”依赖项
我的代码包括在这里:
Geocoder.init(GOOGLE_API_KEY); //google api key
Geocoder.from(latitude,longitude)
.then(json => {
var addressComponent = json.results[0].address_components;
console.log(JSON.stringify(addressComponent));
})
.catch(error => console.warn(error));
Run Code Online (Sandbox Code Playgroud)
需要一些帮助?
这些似乎并非如此,partial_matches所以我想知道为什么它没有带回所有数据,特别是postal_code.
通过仔细检查谷歌地图,这就是我想要的确切地址。换句话说,就是直接打击。
Python代码:
address = '34 new street, Green road, Carlow'
geocode_url = "https://maps.googleapis.com/maps/api/geocode/json?address={}&key={}".format(address,api_key)
# Ping google for the reuslts:
results = requests.get(geocode_url)
# Results will be in JSON format - convert to dict using requests functionality
results = results.json()
Run Code Online (Sandbox Code Playgroud)
以及结果。这里应该有postal_code数据吧?没什么可说的,这只是一场部分比赛。
{'results': [{'address_components': [{'long_name': '34',
'short_name': '34',
'types': ['street_number']},
{'long_name': 'New Street', 'short_name': 'New St', 'types': ['route']},
{'long_name': 'Moanacurragh',
'short_name': 'Moanacurragh',
'types': ['neighborhood', 'political']},
{'long_name': 'Carlow',
'short_name': 'Carlow',
'types': ['locality', 'political']},
{'long_name': 'County Carlow', …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用react-geocode从用户的经纬度坐标中获取地址,但不幸的是我收到错误API keys with referrer restrictions cannot be used with this API.是否可以使用react-geocode允许引荐来源网址限制的不同API?否则我该如何执行此操作,因为我无法删除 API 密钥的引用限制。有没有办法使用我已经用来显示地图的 Google 地图 API 来反转地理编码纬度/经度坐标?
import Geocode from "react-geocode";
Geocode.setApiKey("AIzaSyDsb7F-VyBJn7r4LilYH_lRHBpPfgyUga8");
Geocode.enableDebug();
Geocode.fromLatLng("48.8583701", "2.2922926").then(
response => {
const address = response.results[0].formatted_address;
console.log(address);
},
error => {
console.error(error);
}
);
Run Code Online (Sandbox Code Playgroud)
可以在没有 API KEY 的情况下使用 google Maps Api 吗?
使用
http://maps.googleapis.com/maps/api/geocode/xml?address=[address]&sensor=false
Run Code Online (Sandbox Code Playgroud)
我收到以下错误响应
REQUEST_DENIED(验证对 Google Maps Platform API 的每个请求)
我只需要为我的项目做一点 POC。
在另一种情况下,我创建了一个 api 密钥,它需要启用计费。
在结算过程中,信用卡是强制性的。
是不是可以免费激活apiKey?
谢谢 ;)
google-geocoder ×10
google-maps ×5
google-api ×2
javascript ×2
android ×1
api ×1
api-key ×1
autocomplete ×1
billing ×1
geolocation ×1
java ×1
jquery ×1
kotlin ×1
php ×1
python ×1
react-native ×1
reactjs ×1