【问题标题】:Which latitude and longitude has to taken?必须取哪个纬度和经度?
【发布时间】:2015-06-16 13:02:34
【问题描述】:

我收到此 API 的以下回复“http://maps.google.com/maps/api/geocode/json?sensor=false&address=No.3C-137,2nd Floor,2nd Main Rd, Kasturi Nagar, East of NGEF Layout, Bennigana Halli, Bengaluru, Karnataka 560043”

对于他的地址“No.3C-137, 2nd Floor, 2nd Main Rd, Kasturi Nagar, East of NGEF Layout, Bennigana Halli, Bengaluru, Karnataka 560043”我想提取纬度和经度。那里有很多地址组件。必须考虑哪个地址组件以及必须采用哪个纬度和经度,即东北、西南、位置。

 Printing description of dict:
        {
            results =     (
                        {
                    "address_components" =             (
                                        {
                            "long_name" = 137;
                            "short_name" = 137;
                            types =                     (
                                "street_number"
                            );
                        },
                                        {
                            "long_name" = "2nd Main Road";
                            "short_name" = "2nd Main Rd";
                            types =                     (
                                route
                            );
                        },
                                        {
                            "long_name" = "East of NGEF Layout";
                            "short_name" = "East of NGEF Layout";
                            types =                     (
                                "sublocality_level_2",
                                sublocality,
                                political
                            );
                        },
                                        {
                            "long_name" = "Bennigana Halli";
                            "short_name" = "Bennigana Halli";
                            types =                     (
                                "sublocality_level_1",
                                sublocality,
                                political
                            );
                        },
                                        {
                            "long_name" = Bengaluru;
                            "short_name" = Bengaluru;
                            types =                     (
                                locality,
                                political
                            );
                        },
                                        {
                            "long_name" = "Bangalore Urban";
                            "short_name" = "Bangalore Urban";
                            types =                     (
                                "administrative_area_level_2",
                                political
                            );
                        },
                                        {
                            "long_name" = Karnataka;
                            "short_name" = KA;
                            types =                     (
                                "administrative_area_level_1",
                                political
                            );
                        },
                                        {
                            "long_name" = India;
                            "short_name" = IN;
                            types =                     (
                                country,
                                political
                            );
                        },
                                        {
                            "long_name" = 560043;
                            "short_name" = 560043;
                            types =                     (
                                "postal_code"
                            );
                        }
                    );
                    "formatted_address" = "137, 2nd Main Road, East of NGEF Layout, Bennigana Halli, Bengaluru, Karnataka 560043, India";
                    geometry =             {
                        bounds =                 {
                            northeast =                     {
                                lat = "13.0048165";
                                lng = "77.6600505";
                            };
                            southwest =                     {
                                lat = "13.004809";
                                lng = "77.66003379999999";
                            };
                        };
                        location =                 {
                            lat = "13.0048165";
                            lng = "77.6600505";
                        };
                        "location_type" = "RANGE_INTERPOLATED";
                        viewport =                 {
                            northeast =                     {
                                lat = "13.0061617302915";
                                lng = "77.66139113029149";
                            };
                            southwest =                     {
                                lat = "13.0034637697085";
                                lng = "77.65869316970849";
                            };
                        };
                    };
                    "partial_match" = 1;
                    "place_id" = ElwxMzcsIDJuZCBNYWluIFJvYWQsIEVhc3Qgb2YgTkdFRiBMYXlvdXQsIEJlbm5pZ2FuYSBIYWxsaSwgQmVuZ2FsdXJ1LCBLYXJuYXRha2EgNTYwMDQzLCBJbmRpYQ;
                    types =             (
                        "street_address"
                    );
                },
                        {
                    "address_components" =             (
                                        {
                            "long_name" = 137;
                            "short_name" = 137;
                            types =                     (
                                "street_number"
                            );
                        },
                                        {
                            "long_name" = "2nd H Main Road";
                            "short_name" = "2nd H Main Rd";
                            types =                     (
                                route
                            );
                        },
                                        {
                            "long_name" = "Kasturi Nagar";
                            "short_name" = "Kasturi Nagar";
                            types =                     (
                                "sublocality_level_2",
                                sublocality,
                                political
                            );
                        },
                                        {
                            "long_name" = "Bennigana Halli";
                            "short_name" = "Bennigana Halli";
                            types =                     (
                                "sublocality_level_1",
                                sublocality,
                                political
                            );
                        },
                                        {
                            "long_name" = Bengaluru;
                            "short_name" = Bengaluru;
                            types =                     (
                                locality,
                                political
                            );
                        },
                                        {
                            "long_name" = "Bangalore Urban";
                            "short_name" = "Bangalore Urban";
                            types =                     (
                                "administrative_area_level_2",
                                political
                            );
                        },
                                        {
                            "long_name" = Karnataka;
                            "short_name" = KA;
                            types =                     (
                                "administrative_area_level_1",
                                political
                            );
                        },
                                        {
                            "long_name" = India;
                            "short_name" = IN;
                            types =                     (
                                country,
                                political
                            );
                        },
                                        {
                            "long_name" = 560043;
                            "short_name" = 560043;
                            types =                     (
                                "postal_code"
                            );
                        }
                    );
                    "formatted_address" = "137, 2nd H Main Road, Kasturi Nagar, Bennigana Halli, Bengaluru, Karnataka 560043, India";
                    geometry =             {
                        bounds =                 {
                            northeast =                     {
                                lat = "13.0025809";
                                lng = "77.6626708";
                            };
                            southwest =                     {
                                lat = "13.0025795";
                                lng = "77.6626524";
                            };
                        };
                        location =                 {
                            lat = "13.0025809";
                            lng = "77.6626708";
                        };
                        "location_type" = "RANGE_INTERPOLATED";
                        viewport =                 {
                            northeast =                     {
                                lat = "13.0039291802915";
                                lng = "77.6640105802915";
                            };
                            southwest =                     {
                                lat = "13.0012312197085";
                                lng = "77.6613126197085";
                            };
                        };
                    };
                    "partial_match" = 1;
                    "place_id" = ElgxMzcsIDJuZCBIIE1haW4gUm9hZCwgS2FzdHVyaSBOYWdhciwgQmVubmlnYW5hIEhhbGxpLCBCZW5nYWx1cnUsIEthcm5hdGFrYSA1NjAwNDMsIEluZGlh;
                    types =             (
                        "street_address"
                    );
                },
                        {
                    "address_components" =             (
                                        {
                            "long_name" = 137;
                            "short_name" = 137;
                            types =                     (
                                "street_number"
                            );
                        },
                                        {
                            "long_name" = "2nd A Main Road";
                            "short_name" = "2nd A Main Rd";
                            types =                     (
                                route
                            );
                        },
                                        {
                            "long_name" = "B Channasandra";
                            "short_name" = "B Channasandra";
                            types =                     (
                                "sublocality_level_3",
                                sublocality,
                                political
                            );
                        },
                                        {
                            "long_name" = "Kasturi Nagar";
                            "short_name" = "Kasturi Nagar";
                            types =                     (
                                "sublocality_level_2",
                                sublocality,
                                political
                            );
                        },
                                        {
                            "long_name" = "Bennigana Halli";
                            "short_name" = "Bennigana Halli";
                            types =                     (
                                "sublocality_level_1",
                                sublocality,
                                political
                            );
                        },
                                        {
                            "long_name" = Bengaluru;
                            "short_name" = Bengaluru;
                            types =                     (
                                locality,
                                political
                            );
                        },
                                        {
                            "long_name" = "Bangalore Urban";
                            "short_name" = "Bangalore Urban";
                            types =                     (
                                "administrative_area_level_2",
                                political
                            );
                        },
                                        {
                            "long_name" = Karnataka;
                            "short_name" = KA;
                            types =                     (
                                "administrative_area_level_1",
                                political
                            );
                        },
                                        {
                            "long_name" = India;
                            "short_name" = IN;
                            types =                     (
                                country,
                                political
                            );
                        },
                                        {
                            "long_name" = 560043;
                            "short_name" = 560043;
                            types =                     (
                                "postal_code"
                            );
                        }
                    );

  "formatted_address" : "137, 2nd H Main Road, Kasturi Nagar, Bennigana Halli, Bengaluru, Karnataka 560043, India",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 13.0025809,
                  "lng" : 77.6626708
               },
               "southwest" : {
                  "lat" : 13.0025795,
                  "lng" : 77.6626524
               }
            },
            "location" : {
               "lat" : 13.0025809,
               "lng" : 77.6626708
            },
            "location_type" : "RANGE_INTERPOLATED",
            "viewport" : {
               "northeast" : {
                  "lat" : 13.0039291802915,
                  "lng" : 77.6640105802915
               },
               "southwest" : {
                  "lat" : 13.0012312197085,
                  "lng" : 77.6613126197085
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ElgxMzcsIDJuZCBIIE1haW4gUm9hZCwgS2FzdHVyaSBOYWdhciwgQmVubmlnYW5hIEhhbGxpLCBCZW5nYWx1cnUsIEthcm5hdGFrYSA1NjAwNDMsIEluZGlh",
         "types" : [ "street_address" ]
      },

【问题讨论】:

  • 你应该使用location键/值
  • 还有一个疑问:我从当前位置获得了 13.00419814 77.66045468,并且我确实对其进行了地理编码,因此我得到了上述地址。但在那个响应中我没有在 json 响应中找到这些 lat 和 long

标签: ios objective-c google-maps google-maps-sdk-ios


【解决方案1】:

这是location键的值

location = { lat = "13.0048165"; lng = "77.6600505"; };

提供的数据是字典(键为results)。 results 的派生值是一个数组,其中包含 API 中所有可能的位置。每个地方(数组索引处的一个对象)都是字典,它有一个子字典,键为geometry。在这本字典中,您还有另一本字典,其中包含您的 location 字典和 latlng

如果我没记错的话会是这样的

NSDictionary *aPlace=[[dict objectForKey:@"results"] objectAtIndex:someIndex];
NSDictionary *geomatry=[aPlace objectForKey:@"geometry"];
NSDictionary *location=[geomatry objectForKey:@"location"];
float lat=[[location objectForKey:@"lat"] floatValue ];
float lng=[[location objectForKey:@"lng"] floatValue ];

【讨论】:

  • 在我的回复中,我有多个位置
  • Bhai @MuralimohanProddatur 您的每个地方字典只有一个 geometry 字典,每个 geometry 字典只有一个 location。您提供的数据是一个字典,它以数组的形式保存位置。
  • 我只是编辑请再看一遍。早些时候我显示了太长的身体错误,这就是为什么我将第一个对象放在响应中
  • 通常我们选择第一个结果。顺便说一句,结果有一个字段显示地址的相似程度。
  • 我知道如何解析它。我的问题是要考虑哪个位置?
猜你喜欢
  • 2019-03-25
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多