实施Android Google地图搜索功能V2

时间:2014-06-05 08:47:41

标签: android google-places-api android-maps-v2

enter image description here

我想在我的android地图应用程序中实现搜索国家/州/城市或附近的地方,我知道这个问题已被问过here但是我想再次提出这个问题,因为我还在努力在SO上找到任何优雅的解决方案。我也提到了this帖子,但在阅读了一些评论后我失去了希望。如果有人在android中实现了地方api?

1 个答案:

答案 0 :(得分:2)

直截了当的方法是使用Google Geocoding API。您可以使用

访问它

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA

这将返回JSON,其中包含该地址的位置数据,包括纬度和经度。以下是我所做的一些代码片段:

               try{
                    JSONConnectorGet jget=new JSONConnectorGet(url);
                    returnval=jget.connectClient();
                    results=returnval.getJSONArray("results");
                    resultobj=results.getJSONObject(0);
                    System.out.println(resultobj.toString());
                    geometry=resultobj.getJSONObject("geometry");
                    location=geometry.getJSONObject("location");


                    lati=location.getDouble("lat");
                    longi=location.getDouble("lng");

                }
                catch(Exception e){
                    e.printStackTrace();
                }

                a=new LatLng(lati, longi);

此处JSONConnectorGet是我写的一个类,可用于发送HttpGet请求并接收JSONObjectreturnval是我宣布的JSONObjecturl是上面给出的URL,地址被搜索的内容替换。

然后您必须从LatLng中提取JSONObject。我使用的JSONObjectsJSONArrays在try-catch块之外声明。现在我的搜索位置的纬度和经度位于a

现在我只需将相机移动到该位置即可。

eventmap.animateCamera(CameraUpdateFactory.newLatLngZoom(a, 3.0f));

如果需要,您也可以在LatLng处添加标记。