我想在我的android地图应用程序中实现搜索国家/州/城市或附近的地方,我知道这个问题已被问过here但是我想再次提出这个问题,因为我还在努力在SO上找到任何优雅的解决方案。我也提到了this帖子,但在阅读了一些评论后我失去了希望。如果有人在android中实现了地方api?
答案 0 :(得分:2)
直截了当的方法是使用Google Geocoding API
。您可以使用
这将返回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
请求并接收JSONObject
。 returnval
是我宣布的JSONObject
。 url
是上面给出的URL,地址被搜索的内容替换。
然后您必须从LatLng
中提取JSONObject
。我使用的JSONObjects
和JSONArrays
在try-catch块之外声明。现在我的搜索位置的纬度和经度位于a
。
现在我只需将相机移动到该位置即可。
eventmap.animateCamera(CameraUpdateFactory.newLatLngZoom(a, 3.0f));
如果需要,您也可以在LatLng
处添加标记。