Geocoder用不了只好使用地图服务的逆地理编码来获取经纬度的
2022-12-18 本文已影响0人
苍蝇的梦
2022-12-09 遇到的一点小问题
app使用的LocationManager
获取用户的经纬度。最近需要判断用户是否在中国大陆地区。
网上找了下,刚好看到Geocoder geocoder = new Geocoder(this, Locale.getDefault());
可以获取经纬度所在的国家、城市等信息。
试了下,使用方法getFromLocation(double latitude, double longitude, int maxResults)
大概率会出现IO错误IOException
。
又找了下,看到百度地图的定位SDK有国内外位置判断。
试了下,又要SHA1又要包名,而且工单咨询客服,这个功能无法区分是在大陆地区还是港澳台地区。

因为APP使用已经有定位了,所以换成百度地图的Web服务API的全球逆地理编码服务,把经纬度提交上去。
选的英文显示,试了几个值,排除掉不需要的,就能判断用户是否在大陆地区。
country:China
country_code_iso:CHN
country_code_iso2:CN
province:Hong Kong、Macau、Taiwan Province

高德开放平台 - Web服务 API - 地理/逆地理编码
腾讯位置服务 - WebService API - 逆地址解析(坐标位置描述)