标签: google-geocoder

geocoder.getFromLocationName仅返回null

在过去的两天里,当IllegalArgumentException我试图从地址中获取坐标时,我在Android代码中收到错误,甚至反转,从经度和纬度获取地址时,我会忘记这一点.这是代码,但我看不到错误.它是一个标准的代码段,可以在Google搜索中轻松找到.

public GeoPoint determineLatLngFromAddress(Context appContext, String strAddress) {
    Geocoder geocoder = new Geocoder(appContext, Locale.getDefault());
    GeoPoint g = null; 
    try {
        System.out.println("str addres: " + strAddress);
        List<Address> addresses = geocoder.getFromLocationName(strAddress, 5);
        if (addresses.size() > 0) {
            g = new GeoPoint(
               (int) (addresses.get(0).getLatitude() * 1E6),
               (int) (addresses.get(0).getLongitude() * 1E6)
            );
        }
    } catch (Exception e) {
        throw new IllegalArgumentException("locationName == null");
    }
    return g;
 }
Run Code Online (Sandbox Code Playgroud)

这些是manifest.xml文件的权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

我也确实声明了Google API密钥: …

android illegalargumentexception google-geocoder

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

java.io.IOException:无法解析来自服务器的响应getFromLocationName()

我知道此问题经常被问过,但我无法从任何答案或搜索结果中获得解决方案.我必须尽快解决这个问题..我试图从用户输入的地址获得纬度和经度,但我继续得到:

java.io.IOException: Unable to parse response from server 
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码:

        Geocoder geocoder = new Geocoder(this ,Locale.getDefault());
        String newAddress = (String)saveas.getText().toString();
        List<Address> addresses = geocoder.getFromLocationName(newAddress, 1);
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同的方法,但没有任何作用...默认的地图应用程序运行良好,当用户输入地址时,它成功地显示地图中的地址..我怎么能这样做..?

我添加了所有必需的权限,我在真实设备上测试它(版本2.3)...

android google-maps reverse-geocoding google-geocoder

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

Android 内置 Geocoder 和 Google Geocoding API 的区别

谁能告诉我Android GeocoderAndroid Google Geocoder API之间的确切区别

据我所知,Android Geocoder 是平台内置类,与 API 相比,结果较少,可靠性也较低。

内置地理编码器类是否有任何硬性限制/配额?

android google-maps google-maps-api-3 google-geocoder

6
推荐指数
1
解决办法
1424
查看次数

从字符串中提取地址 - 相当于iOS中的NSDataDetector

在iOS中有一个名为的类NSDataDetector,例如,让你传递一个文本,它将检测该文本是否包含邮政地址,日期,链接......

就我而言,我有兴趣为Android找到一个类似的工具,它可以检测文本中的地址.我一直在玩Geocoder,但它只有在你已经知道地址的情况下才有效.否则,它不会达到目的.

我正在寻找的一个例子可能是:

鉴于: This is just a sample text that contains a nice address: 123 W Main St, Imaginary City, IC, 12345 该工具只会返回123 W Main St, Imaginary City, IC, 12345

请记住,地址可能有不同的格式.

提前致谢!

java android street-address google-geocoder nsdatadetector

6
推荐指数
1
解决办法
773
查看次数

google geocode api随机城市的未知错误

我一直注意到谷歌地理编码api在某些时候会回复某些城市的"未知错误".

现在的例子: curl 'https://maps.googleapis.com/maps/api/geocode/json?address=Kansas%20City,%20KS,%20USA'

收益:

{ "results" : [], "status" : "UNKNOWN_ERROR" }

也: curl 'https://maps.googleapis.com/maps/api/geocode/json?address=Oklahoma%20City,%20OK'

收益:

{ "results" : [], "status" : "UNKNOWN_ERROR" }

curl 'https://maps.googleapis.com/maps/api/geocode/json?address=New%20York%20%City,%20NY' 正常工作.

前几天我也遇到了这个问题,但似乎已经解决了,现在又回来了.

google-maps google-geocoder

6
推荐指数
1
解决办法
664
查看次数

在 R 中进行地理编码时获取连接超时错误

我必须在 R 中对几个地址进行地理编码,但收到“已达到超时:连接在 10000 毫秒后超时”错误。我在办公室防火墙后面,所以也尝试使用代理,但仍然遇到相同的错误。

当我使用源作为“dsk”但它不会对大多数地址进行地理编码时,这有效,因此想要使用“google”作为源。

下面是我使用的一段代码。

library(ggmap)
library(curl)

register_google(key = "Have_Entered_My_API_Key_Here")

#Used below code to use proxy...(saw it as a solution in stackoverflow only for working behind firewall..maybe I'm not doing it the correct way?)
library(httr)
set_config(use_proxy(url="10.3.100.207",port=8080))

origAddress <- read.csv("Data_for_Geocoding.csv",header = TRUE,sep = ",",stringsAsFactors = FALSE)

for(i in 1:nrow(origAddress))
{

  result <- geocode(origAddress$Add_to_GeoCode[i], output = "latlona", source = "google",sensor = TRUE)
  origAddress$LONGITUDE[i] <- as.numeric(result[1])
  origAddress$LATITUDE[i] <- as.numeric(result[2])
  # origAddress$ <- as.character(result[3])
}
Run Code Online (Sandbox Code Playgroud)

运行此代码时出现以下错误。
“在 curl::curl_fetch_memory(url, handle = handle) 中出错:达到超时:连接在 …

geocoding r reverse-geocoding google-geocoder google-geocoding-api

6
推荐指数
1
解决办法
4529
查看次数

R 在 R 中展平不同长度的嵌套列表(Google 地理编码 API 输出)

我一直在使用 Google 的地理编码 API 对地址列表进行地理编码。它在嵌套列表中返回结果。列表中的元素可能会有所不同,有时会出现部分匹配,从而导致嵌套在最高级别的多个嵌套列表。到目前为止,我已将每个 GoogleResult 保存到单个数据框单元格中。

这是我的数据框的示例:

    df <- structure(list(address = structure(c(3L, 1L, 2L), .Label = c("115 Civic Parade, Altona VIC 3018", 
"Civic Parade, Altona VIC 3018", "EAST LA CLARKEFIELD 3430"), class = "factor"), 
    GoogleResult = list(list(list(access_points = list(), address_components = list(
        list(long_name = "Los Angeles", short_name = "Los Angeles", 
            types = list("locality", "political")), list(long_name = "Los Angeles County", 
            short_name = "Los Angeles County", types = list("administrative_area_level_2", 
                "political")), list(long_name = "California", 
            short_name = "CA", types = list("administrative_area_level_1", 
                "political")), list(long_name …
Run Code Online (Sandbox Code Playgroud)

geocoding r list nested-lists google-geocoder

6
推荐指数
1
解决办法
126
查看次数

Google将地理编码API V3映射为不返回javascript函数的结果

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

javascript jquery google-maps geocoding google-geocoder

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

反向地理编码 - 服务不可用 - 重新启动设备无法明确解决 - 批评我的手动反向地理编码

有时我会Service Not Available在我的申请中遇到例外情况.大多数时候,没有问题.但有时它会发生.(该应用程序仍在开发中)

解决问题的唯一方法是重启手机.关于支持论坛的相关问题38009.但我从评论中理解的是,重启设备可以永远解决问题.

它是否正确?
因为在我的情况下,错误可以返回(频率:我认为每月一次或两次,我在这个应用程序上是全职).

没有办法从应用程序内部重新启动地理编码器

我唯一的解决方案是提供一个替代解决方案,以防万一"手动"获取地址,如下所示.你有更好的吗?

    Dbg.d(TAG, "=== address_info FetchLocationTask - doInBackground");
new Thread(new Runnable() {

    @Override
    public void run() {
        Looper.prepare();
        mHandler = new Handler();
        Looper.loop();
    }
}).start();

    /**
     * Implementation of a second method in case of failure:
     * 
     */
    double lat = Double.parseDouble(args[0]);
    double lng = Double.parseDouble(args[1]);
    String address = String.format(Locale.ENGLISH,
            "http://maps.googleapis.com/maps/api/geocode/json?latlng="+Double.toString(lat)+","+Double.toString(lng)+"&sensor=true&language="+Locale.getDefault().getCountry(), lat, lng);
    Dbg.d(TAG, "fetching path : "+ address);


    HttpGet httpGet = new HttpGet(address); …
Run Code Online (Sandbox Code Playgroud)

android reverse-geocoding google-geocoder service-not-available

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

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
查看次数