Я предполагаю, что вы - одна точка, и у вас есть еще 10 точек, которые находятся где-то на карте.
Сначала вам нужно найти точку, которая находится ближе всего к вам.
Вы можете использовать эту функцию, которая ожидает два объекта местоположения, которые содержат широту и долготу.
oLocation1 = {latitude:0,longitude:0};
oLocation2 = {latitude:19,longitude:23};
function calcDistHaversine (oLocation1, oLocation2) {
var dLat = (oLocation2.latitude * Math.PI / 180 - oLocation1.latitude * Math.PI / 180);//*Math.PI*180;
var dLon = (oLocation2.longitude * Math.PI / 180 - oLocation1.longitude * Math.PI / 180);//*Math.PI*180;
var lat1 = oLocation1.latitude * Math.PI / 180;//*Math.PI*180;
var lat2 = oLocation2.latitude * Math.PI / 180;//*Math.PI*180;
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var distance = 6371 * c;
return distance;
};
В результате вы получите расстояние между этими двумя точками относительно вашей кривизны земли.
Теперь у вас есть ваше местоположение и ближайшее местоположение.
Давайте назовем их своими.
Далее необходимо создать массив, содержащий эти два местоположения, преобразованные в объекты местоположения Microsoft.
var yourLocation= new Microsoft.Maps.Location(your.latitude, your.longitude);
var theirLocation= new Microsoft.Maps.Location(their.latitude, their.longitude);
var arr = [];
arr.push(yourLocation);
arr.push(theirLocation);
Теперь вы используете функцию карт Bing, которая дает вам лучшее масштабирование и указание в соответствии с заданными местоположениями.
var bestView = Microsoft.Maps.LocationRect.fromLocations(arrLocations);
Затем вы устанавливаете вид карты в соответствии с наилучшим видом, который мы нашли.
setTimeout((function () {
map.setView({ bounds: bestView });
}).bind(this), 1000);