Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反向地理编码以获取街道名称_Java_Android_Reverse Geocoding - Fatal编程技术网

Java 反向地理编码以获取街道名称

Java 反向地理编码以获取街道名称,java,android,reverse-geocoding,Java,Android,Reverse Geocoding,这是我在这里发现的另一个问题的延伸: OP要求提供最近的街道名称,但给出的答案对我不起作用。 我需要我的应用程序“我住在爱尔兰”的街道名称,我们所有的道路都用一个字母后跟道路编号命名。根据道路等级,字母为L、R、N或M。这是我的应用程序所需的信息 使用geocoder类对这些单词进行反向地理编码:53.286288,-6.801891 (就在“R”路上)给了我区域名称,但没有道路名称。 在谷歌地图上,如果你输入单词,它会显示为“R403” 我的问题是,我如何使用谷歌api的co ords获得最

这是我在这里发现的另一个问题的延伸:

OP要求提供最近的街道名称,但给出的答案对我不起作用。 我需要我的应用程序“我住在爱尔兰”的街道名称,我们所有的道路都用一个字母后跟道路编号命名。根据道路等级,字母为L、R、N或M。这是我的应用程序所需的信息

使用geocoder类对这些单词进行反向地理编码:53.286288,-6.801891 (就在“R”路上)给了我区域名称,但没有道路名称。 在谷歌地图上,如果你输入单词,它会显示为“R403”

我的问题是,我如何使用谷歌api的co ords获得最近的道路名称? 如果在线谷歌地图可以报告道路名称,我有办法吗


我已经研究了方向API,我还想知道我是否提供了将上述co作为起点和终点的API(因为我的应用程序将只有当前位置,而没有目的地),API是否会返回道路名称?

使用方向API,您可以实现这一点。我不经常使用此API,但您可以使用以下内容:

我把你的坐标放在原点。在结果中,您可以看到一个
起始地址

起始地址:“爱尔兰基尔代尔公司R403”

或者不设定目的地:

编辑:调用并检索Json

别忘了在舱单上申请互联网许可

<manifest xlmns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>

解析JSON的代码:

使用DirectionAPI,您可以实现这一点。我不经常使用此API,但您可以使用以下内容:

我把你的坐标放在原点。在结果中,您可以看到一个
起始地址

起始地址:“爱尔兰基尔代尔公司R403”

或者不设定目的地:

编辑:调用并检索Json

别忘了在舱单上申请互联网许可

<manifest xlmns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>

要从中解析JSON的代码:

Edit还应添加它为这些单词返回的区域名称“Graigues”,这是返回地址object中的第一个元素“[0]”,请发布一些代码。Android/native平台上的问题与web服务上的问题略有不同。请编辑您的问题并正确设置格式。请参阅:公共字符串getAddressForLocation(上下文上下文,双lat,双lng)引发IOException{Geocoder myLocation=new Geocoder(activity.getApplicationContext());列表myList=myLocation.getFromLocation(lat,lng,1);返回myList.get(0).toString();}抱歉我是新来的,尝试了所有操作,你提供的链接没有说明具体的链接。我有一个google,没有“{}”代码按钮,我试着使用
块、4个空格缩进、控制台字符、高亮和ctrl-k。不知道男人对不起?编辑还应该添加它为这些单词返回的区域名为“Graigues”,这是返回地址object中的第一个元素“[0]”,请发布一些代码。Android/native平台上的问题与web服务上的问题略有不同。请编辑您的问题并正确设置格式。请参阅:公共字符串getAddressForLocation(上下文上下文,双lat,双lng)引发IOException{Geocoder myLocation=new Geocoder(activity.getApplicationContext());列表myList=myLocation.getFromLocation(lat,lng,1);返回myList.get(0).toString();}抱歉我是新来的,尝试了所有操作,你提供的链接没有说明具体的链接。我有一个google,没有“{}”代码按钮,我试着使用
块、4个空格缩进、控制台字符、高亮和ctrl-k。不知道男人对不起?这似乎正是我需要的谢谢。您能否提供代码,说明我将如何在我的应用程序中请求这些内容?权限设置为我的应用程序也使用httprequest将数据发布到我的服务器,但我如何接收?我会用如下变量替换硬编码的lat、lngs:“我应该使用什么方法和/或技术?”?这正是我需要的谢谢。您能否提供代码,说明我将如何在我的应用程序中请求这些内容?权限设置为我的应用程序也使用httprequest将数据发布到我的服务器,但我如何接收?我会用如下变量替换硬编码的lat、lngs:“我应该使用什么方法和/或技术?”?谢谢
private void getRoadName(String lat, String lng) {

    String roadName = "";
    String url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=__LAT__,__LNG__&sensor=false";

    url = url.replaceAll("__LAT__", lat);
    url = url.replaceAll("__LNG__", lng);

    DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
    HttpGet httpget = new HttpGet(url);

    InputStream inputStream = null;
    String result = null;
    try {
        HttpResponse response = httpclient.execute(httpget);           
        HttpEntity entity = response.getEntity();

        inputStream = entity.getContent();
        // json is UTF-8 by default
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
        StringBuilder sb = new StringBuilder();

        String line = null;
        while ((line = reader.readLine()) != null)
        {
            sb.append(line + "\n");
        }
        result = sb.toString();
    } catch (Exception e) { 
        // Oops
    }
    finally {
        try{if(inputStream != null)inputStream.close();}catch(Exception squish){}
    }        

    JSONObject jObject = new JSONObject(result);
    JSONArray jArray = jObject.getJSONArray("results");
    if (jArray != null && jArray.size > 0) {
        try {
            JSONObject oneObject = jArray.getJSONObject(i);
            // Pulling items from the array
            roadName = oneObject.getString("formatted_address");
        } catch (JSONException e) {
        // Oops
        }
    }
}