2012-04-20 68 views
0

当我提供下面给出的网址,我得到正确的rsults但谷歌的地方API不支持多种类型的

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

请发布日志,以便我们可以看到您收到的异常一个堆栈跟踪。 – 2012-04-20 19:09:25

+0

无法启动活动ComponentInfo {com.run.trial/com.run.trial.RuntrialActivity}:java.lang.NullPointerException – santosh407 2012-04-22 17:01:01

+0

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1768) – santosh407 2012-04-22 17:01:32

回答

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 2017-06-02 07:28:01

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; 
} 
相关问题