2012-04-20 2 views
0

, когда я предоставить URL приведенных ниже, я получаю правильные rsults ноGoogle место апи не поддерживает несколько типов

String baseUrl = "https://maps.googleapis.com/maps/api/place/search/xml?location="; 
    String last="&radius=20000&types=school&sensor=false&key="; 

    URL = baseUrl + latitude + "," + longitude + last + API_KEY ; 

, когда я пытаюсь использовать несколько типов как:

школа | университет

он показывая вынуждены закрыты .... EX

String baseUrl = "https://maps.googleapis.com/maps/api/place/search/xml?location="; 
    String last="&radius=20000&types=school|university&sensor=false&key="; 

    URL = baseUrl + latitude + "," + longitude + last + API_KEY ; 

, что ошибка я делаю ...

+0

Пожалуйста, разместите журнал, чтобы мы могли видеть исключение, которое вы получаете, и трассировка стека. –

+0

Невозможно запустить Activity ComponentInfo {com.run.trial/com.run.trial.RuntrialActivity}: java.lang.NullPointerException – santosh407

+0

в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1768) – santosh407

ответ

0

Привет друг я была такая же проблема, как вы, после поиска долго я нашел другое решение для ответа синтаксического анализа с помощью Google залпа API http://java.dzone.com/articles/android-%E2%80%93-volley-library Volley library for Android parse xml response?

залпа liabrery не имеет никакого запроса на XML но имеют строковый запрос и ответ, вы можете преобразовать строку в формат xml, чем данные синтаксического анализа, как xml

0

Друг теперь я получил поддержку нескольких типов. использовать URI класса строитель URL запроса

public String getURL(double lat, double lng){ 
    Uri uri = new Uri.Builder() 
    .scheme("https") 
    .authority("maps.googleapis.com") 
    .path("maps/api/place/search/xml") 
    .appendQueryParameter("location", lat+",",lng) 
    .appendQueryParameter("radius", "5000") 
    .appendQueryParameter("types", "zoo|travel_agency|taxi_stand|pet_store|museum|movie_theater|library|jewelry_store|hospital|clothing_store|atm|church|bus_station|art_gallery|bank|beauty_salon|city_hall|book_store|park|shopping_mall|train_station|airport") 
    .appendQueryParameter("sensor", "true") 
    .appendQueryParameter("key", "your key") 
    .build(); 
    return uri.toString(); 
} 
4

Это работает для меня при использовании нескольких типов:

String keyString = "your_key"; 

String JSON_BASE = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="; 
String types = "airport|hospital"; 
try { 
     placesSearchStr=JSON_BASE+getLat()+","+getLng()+ 
         "&radius=1000&sensor=false&types="+URLEncoder.encode(types,"UTF-8")+ 
         "&key="+keyString; 
    } catch (UnsupportedEncodingException e) { 

     e.printStackTrace(); 
    } 

Акцент здесь делается на types="+URLEncoder.encode(types,"UTF-8")

+0

Спасибо, работаю как шарм. – Satheesh

0

Попробуйте поставить такие параметры, как, где типы как String types = "cafe|restaurant";:

try { 
    HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT); 
    HttpRequest request = httpRequestFactory 
      .buildGetRequest(new GenericUrl(PLACES_SEARCH_URL)); 
    request.getUrl().put("key", API_KEY); 
    request.getUrl().put("location", _latitude + "," + _longitude); 
    request.getUrl().put("radius", _radius); // in meters 
    request.getUrl().put("sensor", "false"); 

    if(types != null) 
     request.getUrl().put("types", types); 

    PlacesList list = request.execute().parseAs(PlacesList.class); 
    // Check log cat for places response status 
    Log.d("Places Status", "" + list.status); 
    return list; 

} catch (HttpResponseException e) { 
    Log.e("Error:", e.getMessage()); 
    return null; 
} 
Смежные вопросы