Как узнать название города по широте и долготе в Google Maps? - PullRequest
115 голосов
/ 19 февраля 2010

Как я могу получить название города в Картах Google, если у меня есть координаты широты и долготы города или области?

Я пытался использовать широту, долготу, и я получил страну, но я не знаю, как получить название города.

Ответы [ 14 ]

0 голосов
/ 17 августа 2017

попробуйте использовать этот API:

URL ": http://maps.googleapis.com/maps/api/geocode/json?latlng="+String.valueOf(yout_lattitude)+","+String.valueOf(your_longitude)

0 голосов
/ 12 июня 2017
 com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(data);
        if("OK".equals(jsonObject.getString("status"))){
            String formatted_address;
            JSONArray results = jsonObject.getJSONArray("results");
            if(results != null && results.size() > 0){
                com.alibaba.fastjson.JSONObject object = results.getJSONObject(0);
                String addressComponents = object.getString("address_components");
                formatted_address = object.getString("formatted_address");
                Log.e("amaya","formatted_address="+formatted_address+"--url="+url);
                if(findCity){
                    boolean finded = false;
                    JSONArray ac = JSONArray.parseArray(addressComponents);
                    if(ac != null && ac.size() > 0){
                        for(int i=0;i<ac.size();i++){
                            com.alibaba.fastjson.JSONObject jo = ac.getJSONObject(i);
                            JSONArray types = jo.getJSONArray("types");
                            if(types != null && types.size() > 0){
                                for(int j=0;j<ac.size();j++){
                                    String string = types.getString(i);
                                    if("administrative_area_level_1".equals(string)){
                                        finded = true;
                                        break;
                                    }
                                }
                            }
                            if(finded) break;
                        }
                    }
                    Log.e("amaya","city="+formatted_address);
                }else{
                    Log.e("amaya","poiName="+hotspotPoi.getPoi_name()+"--"+hotspotPoi);
                }
                if(hotspotPoi != null) hotspotPoi.setPoi_name(formatted_address);
                EventBus.getDefault().post(new AmayaEvent.GeoEvent(hotspotPoi));
            }
        }

это метод для анализа данных обратной связи Google.

0 голосов
/ 06 апреля 2017

У меня появился новый способ решения этой проблемы. Здесь я использовал сервис Google http, чтобы получить полную информацию о местоположении на основе долготы и широты. Вам просто нужно передать широту и долготу в URL и вашем ключе API (например: latlng = 21.1497409, 79.08747970000002 & key = ВАШ API КЛЮЧ). Вот мой сервис get в ExampleService Class

 getService(url) {

    return this.http.get(url).map((data: any) => data.json())

}

это вы можете поместить в любое место и просто позвонить ниже службы из компонента, где вам нужны данные о местоположении

this._exampleService.getService("https://maps.googleapis.com/maps/api/geocode/json?latlng=21.1497409, 79.08747970000002&key=YOUR API KEY").subscribe(getplaceData => {
            var placeDataDest: any;
            placeDataDest = getplaceData;
            console.log("i got place id yeee " + placeDataDest['results'][0]['place_id']);
            console.log("i got place details yeee " + placeDataDest['results']);
        });

аналогично найдите название города .... надеюсь, вы найдете это полезным

0 голосов
/ 24 сентября 2015

Вы можете использовать это, если у вас есть список:

Address address = list.get(0);
String cityname = address.getLocality();
...