我想使用预先填充源地址和目的地地址的地图。
就像,我会提示用户选择当前位置,即A点。(我已经这样做了)。然后,我会根据他/她的位置列出一些地方。现在,我想直接将该地址带到目标地址,即B点。我将向用户显示路线和精确距离。你能告诉我如何为B点的地址添加前缀,如上所述吗?
但是,这两个地点都会随时改变。 例如,
我目前的位置是BTM Layout,班加罗尔,印度(来源)和我想去的餐厅位于印度班加罗尔的Koramangala(目的地)。 后来我改变主意,想去另一家位于印度班加罗尔Marathahalli的餐馆(目的地)。在这种情况下,我的源地址也发生了变化,它现在的HSR布局,班加罗尔,印度。
我的应用会在这两个位置之间绘制一张地图。 有人可以帮帮我吗?怎么做?有可能得到这样的方向吗?
答案 0 :(得分:1)
如果你唯一的问题是关于缩放,你可以尝试这样的事情:
从两点开始创建位置对象(假设它们都在LatLng对象中)
// Start position
Location locStart = new Location("");
locStart.setLatitude(lngStart.latitude);
locStart.setLongitude(lngStart.longitude);
// End position
Location locEnd = new Location("");
locEnd.setLatitude(lngEnd.latitude);
locEnd.setLongitude(lngEnd.longitude);
获取两点之间的距离
double distance = locStart.distanceTo(locEnd);
获得正确的缩放级别
Maps API使用缩放级别(0 =远处...... 20 =建筑物),因此您必须找到一种在距离(以米为单位)和缩放级别之间切换的方法。
int level;
if (distance < 500) level = 1;
else if (distance >= 500 && distance < 2000) level = 2;
// and continue ...
(值仅用于示例,未经测试)
获取虚拟中点
(所以你可以将你的地图居中)
检查answer,我的数学不好:)
更新地图
map.moveCamera(CameraUpdateFactory.newLatLngZoom(midpoint, level));
我希望它会对你有所帮助:)。