在此处直接下载一个国家的地图(无需选择)

时间:2019-06-26 11:01:47

标签: android here-api

我必须在这里下载country的地图,而不必使用复杂的UI进行选择。

简而言之,我需要以某种方式检测country并从此处下载country的离线地图。

我知道这可以解决问题。

 List<Integer> idList = new ArrayList<>();
        idList.add(country.getId());
mMapLoader.installMapPackages(idList)

但是我不知道如何获取MapPackage country 对象。

我不想实施列表UI并从中选择国家

我想检测我的MapPackage 国家并直接下载。

3 个答案:

答案 0 :(得分:0)

您可以使用设备的语言环境来查找国家/地区:

 String locale = context.getResources().getConfiguration().locale.getDisplayCountry();

或者您可以通过用户在手机中使用的SIM卡使用位置:

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String countryCode = tm.getSimCountryIso();

答案 1 :(得分:0)

以下是国家/地区代码的代码

    String UserIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(UserIP))
{
    UserIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
string url = "http://freegeoip.net/json/" + UserIP.ToString();
WebClient client = new WebClient();
string jsonstring = client.DownloadString(url);
dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);
System.Web.HttpContext.Current.Session["UserCountryCode"] = dynObj.country_code;
  

使用上述功能,您可以获取国家/地区代码,以便直接将其作为参数传递给您的功能   例如:mMapLoader.installMapPackages(System.Web.HttpContext.Current.Session [“ UserCountryCode”])

答案 2 :(得分:0)

以下是国家/地区代码的代码

    String UserIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(UserIP))
{
    UserIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
string url = "http://freegeoip.net/json/" + UserIP.ToString();
WebClient client = new WebClient();
string jsonstring = client.DownloadString(url);
dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);
System.Web.HttpContext.Current.Session["UserCountryCode"] = dynObj.country_code;
  

使用上述功能,您可以获取国家/地区代码,以便直接将其作为参数传递给您的功能   例如:mMapLoader.installMapPackages(System.Web.HttpContext.Current.Session [“ UserCountryCode”])

     

在Java中

    public static final Map<String, String> COUNTRY_MAP;
static {
    Map<String, String> map = new HashMap<String, String>();
    map.put("AF", "afghanistan"); // here put your country dynamically 
    map.put("AL", "albania");
    ...
    map.put("ZW", "zimbabwe");
    COUNTRY_MAP = Collections.unmodifiableMap( map );
}