我在地图上有多个注释 - 尽管用户可能需要滚动才能看到它们.我希望用户能够选择一个按钮使其全部适合地图 - 无需滚动/手动调整大小.
我确定了分钟.最多 我希望在地图上显示的点的纬度和经度(例如minLat,maxLat,minLong,maxLong).
但是,我正在努力使用特定的公式来获取传递给mapview.setLocation的经度和纬度属性.有关我可以使用的公式的任何指示?
我已经为同样的要求做了一个功能.如果出现错误,您可以测试并告诉我:
function setMarkersWithCenter(map,latiarray,longiarray)
{
if(latiarray.length != longiarray.length)
return;
var total_locations = latiarray.length;
var minLongi = null, minLati = null, maxLongi = null, maxLati = null;
var totalLongi = 0.0, totalLati = 0.0;
for(var i = 0; i < total_locations; i++)
{
if(minLati == null || minLati > latiarray[i]) {
minLati = latiarray[i];
}
if(minLongi == null || minLongi > longiarray[i]) {
minLongi = longiarray[i];
}
if(maxLati == null || maxLati < latiarray[i]) {
maxLati = latiarray[i];
}
if(maxLongi == null || maxLongi < longiarray[i]) {
maxLongi = longiarray[i];
}
}
var ltDiff = maxLati-minLati;
var lgDiff = maxLongi-minLongi;
var delta = ltDiff>lgDiff ? ltDiff : lgDiff;
if(total_locations>0 && delta>0)
{
map.setLocation({
animate : true,
latitude:((maxLati+minLati)/2),
longitude:((maxLongi+minLongi)/2),
latitudeDelta:delta,
longitudeDelta:delta,
});
}
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
2030 次 |
| 最近记录: |