Android 如何在skobbler中使用POI/地理编码搜索

Android 如何在skobbler中使用POI/地理编码搜索,android,map,skmaps,Android,Map,Skmaps,我想在skobbler中使用字符串搜索一个位置。像waze一样,当我搜索例如“美国洛杉矶环球影城”时,搜索环球影城的地理点就会给我。提前谢谢 现在SDK提供了两种搜索方式: 地址(地理编码)-通过多步骤搜索组件 附近的POI-通过NearBySearch组件 如果我理解正确,您正在寻找一个“一行搜索”组件(在一行中键入您的查询并输入)-这是SDK目前没有公开的内容(我们正在进行开发,11月份我们应该会有新的开发),我认为你不需要把事情复杂化,也不需要依赖Skobbler,你可以使用Andro

我想在skobbler中使用字符串搜索一个位置。像waze一样,当我搜索例如“美国洛杉矶环球影城”时,搜索环球影城的地理点就会给我。提前谢谢

现在SDK提供了两种搜索方式:

  • 地址(地理编码)-通过多步骤搜索组件
  • 附近的POI-通过NearBySearch组件

如果我理解正确,您正在寻找一个“一行搜索”组件(在一行中键入您的查询并输入)-这是SDK目前没有公开的内容(我们正在进行开发,11月份我们应该会有新的开发),我认为你不需要把事情复杂化,也不需要依赖Skobbler,你可以使用Android原生地理编码API。结果相当准确

请注意,以下是在UI线程上运行的,您可能希望将其置于AsyncTask或其他任何任务上

private void geocode (String address) {
    String baseUrl          = "";
    String [] splitAddress  = address.split ("[,\\s\\-:\\?]");
    for (int i = 0; i < splitAddress.length; i++) {
        if (i != 0) {
            baseUrl += "+";
        }
        baseUrl += splitAddress [i];
    }
    if (NetUtils.isOnline (MyActivity.this)) {
        Geocoder geocoder = new Geocoder (MyActivity.this);
        try {
            ProgressView.show (MyActivity.this, true);
            List<Address> addresses = geocoder.getFromLocationName (baseUrl, 1);
            if (addresses != null && addresses.size() > 0) {
                Address addressResult = addresses.get (0);

                Log.e (MyActivity.this.class.getSimpleName () + " -- Address Found", address + " : " + addressResult.getLatitude () +  " : " + addressResult.getLongitude());

                launchRouteCalculation (addressResult.getLatitude (), addressResult.getLongitude ());
            } else {
                PopupUtils.show (MyActivity.this, null, "Could not find the destination.");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            ProgressView.dismiss ();
        }
    }
private void地理编码(字符串地址){
字符串baseUrl=“”;
字符串[]splitAddress=address.split(“[,\\s\\-:\\?]”);
for(int i=0;i0){
AddressAddressResult=addresses.get(0);
Log.e(MyActivity.this.class.getSimpleName()+“--Address Found”,Address+“:“+addressResult.getLatitude()+”:“+addressResult.getLatitude()”);
启动RouteCalculation(addressResult.getLatitude(),addressResult.getLatitude());
}否则{
PopupUtils.show(MyActivity.this,null,“找不到目标”);
}
}捕获(IOE异常){
e、 printStackTrace();
}捕获(例外情况除外){
例如printStackTrace();
}最后{
ProgressView.disclose();
}
}

什么样的更新?(API将在2015年第一季度/第二季度保持不变)您是否仍在开发类似于“一线搜索”的组件,如果是,您是否有ETA?是的-计划在今年秋天与我们的消费者应用程序更新一起推出