标签: google-geocoder

地理编码服务与 gMap 搜索之间的差异结果

我想获取该地址的纬度和经度: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)

更好(在法国)但事实并非如此

该查询在谷歌地图网站上运行良好: https://maps.google.fr/maps? q=Boulevard+de+la+Marne++Zone+industrielle,++COULOMMIERS,+77120&hl=fr&ll=48.487486,3.922119&spn =1.541855,4.22699&sll=50.485474,25.620117&sspn=23.748757,67.631836&hq=大道+de+la+马恩++区+工业区,++COULOMMIERS,+77120&半径=15000&t=m&z=9

似乎获得它的唯一方法是执行以下请求: http://maps.googleapis.com/maps/api/geocode/json ?address=Boulevard%20de%20la%20Marne%20Zone%20industrielle,%20COULOMMIERS ,%2077120&组件=国家:FR&传感器=假

我不明白为什么当我使用视口而不是国家时结果不同(两个结果都在视口的边界内)

javascript google-maps google-maps-api-3 google-geocoder

5
推荐指数
1
解决办法
3670
查看次数

Google 地理编码 API 错误:超出查询限制

我目前正在使用 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)

php google-geocoder google-geocoding-api

5
推荐指数
1
解决办法
9590
查看次数

Google GeoCode 自动完成限制状态

我正在尝试将 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

5
推荐指数
2
解决办法
4867
查看次数

Google 地图地理编码 APi 不返回纬度和经度

我正在利用地理编码 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)

即使我使用众所周知的地址,我仍然得不到纬度或经度。

结果对象:

在此输入图像描述

这真的是问题所在还是我使用的代码有问题?我怎样才能解决这个问题?

javascript google-maps google-geocoder google-geocoding-api

5
推荐指数
1
解决办法
5502
查看次数

谷歌地理编码 API 的问题:在响应中获取“partial_match”

我正在使用 google Geocode API 来获取特定地址的经纬度。

当我在谷歌搜索或谷歌地图中搜索“364 S Side Square, Carlinville, IL 62626, USA”时,它会在谷歌搜索结果或地图结果中提供准确的定位。

但同时,当我使用以下请求调用使用地理编码 API 搜索相同的地址时,它给出了“partial_match”:true

http://maps.googleapis.com/maps/api/geocode/json?address=364 S Side Square, Carlinville, IL 62626, USA&sensor=false

任何人都知道为什么它给出 "partial_match" : true 作为回应?

我必须在 API 请求中进行哪些更改才能获得“partial_match”?

api google-maps google-maps-api-3 google-geocoder google-geocoding-api

5
推荐指数
2
解决办法
3647
查看次数

Android grpc 执行失败

尝试使用地理编码器从经纬度获取位置时出现此错误。

错误

由 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)

java android geolocation google-geocoder kotlin

5
推荐指数
1
解决办法
4819
查看次数

如何在 React Native 中解决“地理编码时服务器出错......”?

在 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)

需要一些帮助?

google-api google-geocoder react-native

5
推荐指数
1
解决办法
1526
查看次数

Google Geocode api 未返回某些“直接命中”地址的 postal_code

这些似乎并非如此,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)

python google-maps google-maps-api-3 google-geocoder

5
推荐指数
1
解决办法
2782
查看次数

React-geocode - 使用引用受限 API 从 lat/lng 获取地址?

我正在尝试使用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)

代码沙盒

google-geocoder reactjs

5
推荐指数
1
解决办法
2万
查看次数

无需设置结算帐户的 Google Maps Api

可以在没有 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?

谢谢 ;)

billing google-api api-key google-geocoder

5
推荐指数
1
解决办法
7245
查看次数