Android 如何获取特定城市的身份证号码或代码?

Android 如何获取特定城市的身份证号码或代码?,android,google-maps,Android,Google Maps,当用户从微调器中选择特定城市时,地图将被打开,因此用户可以从所选城市中选择特定地点。如果用户离开所选择的城市,将会有一个像“不是你的城市”这样的祝酒词。我需要地图上显示的城市的唯一id号,并与微调器上选择的城市进行比较不幸的是,谷歌地图API没有发布城市边界信息,即定义城市边界的多边形。我建议使用OpenStreetMap,OpenStreetMap确实发布了这些数据,并且具有任何城市/地区/国家/地区的唯一ID号。使用OSM构建,如果您查看URL,您可以看到有一个唯一的ID与纽约市相关。这是关

当用户从微调器中选择特定城市时,地图将被打开,因此用户可以从所选城市中选择特定地点。如果用户离开所选择的城市,将会有一个像“不是你的城市”这样的祝酒词。我需要地图上显示的城市的唯一id号,并与微调器上选择的城市进行比较

不幸的是,谷歌地图API没有发布城市边界信息,即定义城市边界的多边形。我建议使用OpenStreetMap,OpenStreetMap确实发布了这些数据,并且具有任何城市/地区/国家/地区的唯一ID号。使用OSM构建,如果您查看URL,您可以看到有一个唯一的ID与纽约市相关。这是关于如何在Android上使用OSM的wiki/文档


编辑:另外,您可以使用城市内部坐标的反向地理编码请求,并指定结果类型等于位置,来计算城市的位置

例如,坐标55.710424,37.682381位于莫斯科境内,因此使用结果类型进行反向地理编码

https://maps.googleapis.com/maps/api/geocode/json?latlng=55.710424%2C37.682381&result_type=locality&key=YOUR_API_KEY

将返回以下响应

{
"results":[
  {
    "address_components":[
      {
        "long_name":"Moscow",
        "short_name":"Moscow",
        "types":[
          "locality","political"
        ]
      },
      {
        "long_name":"Moskva",
        "short_name":"Moskva",
        "types":[
          "administrative_area_level_2","political"
        ]
      },
      {
        "long_name":"Moscow",
        "short_name":"Moscow",
        "types":[
          "administrative_area_level_1","political"
        ]
      },
      {
        "long_name":"Russia",
        "short_name":"RU",
        "types":[
          "country","political"
        ]
      }
    ],
    "formatted_address":"Moscow, Russia",
    "geometry":{
      "bounds":{
        "northeast":{
          "lat":56.009657,"lng":37.9456611
        },
        "southwest":{
          "lat":55.48992699999999,"lng":37.3193289
        }
      },
      "location":{
        "lat":55.755826,"lng":37.6172999
      },
      "location_type":"APPROXIMATE",
      "viewport":{
        "northeast":{
          "lat":56.009657,"lng":37.9456611
        },
        "southwest":{
          "lat":55.48992699999999,"lng":37.3193289
        }
      }
    },
    "place_id":"ChIJybDUc_xKtUYRTM9XV8zWRD0",
    "types":[
      "locality","political"
    ]
  }
],
"status":"OK"
}
你可以看到莫斯科的地方ID是ChIJybDUc_xKtUYRTM9XV8zWRD0

您可以将此地点ID与“地点”结果类型一起使用,以反向地理编码来检查坐标是否位于给定城市内

例如,坐标55.586107,38.229675在莫斯科边界之外,并且进行了反向地理编码

https://maps.googleapis.com/maps/api/geocode/json?latlng=55.586107%2C38.229675&language=en&result_type=locality&key=YOUR_API_KEY

将为您提供一个不同的地点,地点ID为ChIJu_L0awrASkER7yCl6FLZFLE,是俄罗斯莫斯科州拉门斯科耶市


我希望这些信息对您有用。

您是否正在使用?如果不是,地点是什么意思?任何地理坐标?Google Places API提供位于同一城市的地点数量的id。但我只需要这个城市的身份证,不需要里面的地方。谷歌地图显示同一城市的不同名称,如“莫斯科”和“莫斯科”。这就是为什么我需要它的唯一id号,换句话说:给定一个位置,你想检查它是否在给定的城市内,对吗?是的,你是对的