我正在开发Android应用程序。在其中一个视图中,用户可以键入地址(不太可能在Google地图中键入的内容),并从反向地理编码地址列表中选择结果。 使用getLocationFromName方法通过Geocoder类(android.location.Geocoder类)进行地理编码。 然后我使用Lat / Lng使用CameraPosition.Builder()。target(pos)移动GoogleMap相机,但我没有提示要使用哪个zoomLevel。
客户要求我复制类似于android上的Maps应用程序的行为,通常是这样的:
我在地图上没有标记,也不必显示当前用户位置。只是输入的位置。
有关如何复制GMap行为的任何建议吗?
似乎Google地图可以将“地区”与给定地址相关联,确定该地区的某种“边界框”,然后确保该地区在地图上完全可见,但目前看来我无法找出与结果相关的任何区域。
想到的其他想法(快速和肮脏)是检查各种android.location.Address字段(featureName,subLocality,locality,...)将缩放级别与每个相关联,并根据哪个是确定缩放级别现在,但这可能是不精确的:寻找小城镇可能会导致变焦变大,否则,大城镇可能无法适应屏幕...
答案 0 :(得分:0)
您可以使用Google Geocoding API,它会返回您要查找的边界框,例如:
http://maps.google.com/maps/api/geocode/json?address=Viale+Fulvio+Testi,+Milano,+Italy&sensor=false
返回
"bounds" : {
"northeast" : {
"lat" : 45.52959160,
"lng" : 9.21414790
},
"southwest" : {
"lat" : 45.50122050,
"lng" : 9.197628699999999
}
},