У меня есть карта, которая заполняет кнопки из базы данных. И круг. Я хочу узнать, какие другие кнопки находятся в радиусе окружности VE Shape и создать список их адресов.Обнаружение Pushpins внутри формы VE на карте Bing
function addPushPin(lat, long) {
//var point = new Microsoft.Maps.Point(e.getX(), e.getY());
//var pushpinLocation = new(lat, long);
var s = new VEShape(VEShapeType.Pushpin, new VELatLong(lat,long));
var customIcon = new VECustomIconSpecification();
//customIcon.TextContent = "yo bana4na4";
customIcon.Image = "http://universidadescancun.com/wp-content/themes/GeoUnis3/images/pinpoint-fiesta.png";
//customIcon.ImageOffset = new VEPixel();
s.SetTitle("First Pin <span style=color:red>Demo Title<>/span>");
s.SetDescription("This comes to the <b>description</b> of pushpin.");
s.SetMoreInfoURL("http://dotnetricks.blogspot.com");
s.SetPhotoURL("http://upload.wikimedia.org/wikipedia/commons/8/8a/Banana-Single.jpg");
s.SetCustomIcon(customIcon);
s.SetIconAnchor(new VELatLong(lat, long));
map.AddShape(s);
}
У меня также есть моя карта, населяющая круг вокруг одной из этих кнопок. Он населен так.
function getCircleNow(lat, long) {
var latin = lat;
var lonin = long;
var latlong = new VELatLong(latin, lonin);
centerPoint = (latlong);
//var center = map.GetCenter().toString();
//alert(center);
//Get initial circle points
var circlePoints = buildCircle(centerPoint.Latitude, centerPoint.Longitude, 50.74);
//Build circle
circle = new VEShape(VEShapeType.Polygon, circlePoints);
circle.HideIcon();
circle.SetLineWidth(2);
map.AddShape(circle);
//Build mask
circleMask = new VEShape(VEShapeType.Polygon, circlePoints);
circleMask.HideIcon();
circleMask.Hide();
circleMask.SetLineColor(new VEColor(0, 0, 0, 0.5));
circleMask.SetFillColor(new VEColor(0, 0, 0, 0.0));
circleMask.Primitives[0].symbol.stroke_dashstyle = "Dash";
map.AddShape(circleMask);
}
И вот функция buildCircle(), которую он вызывает.
function buildCircle(latin, lonin, radius) {
var locs = new Array();
var lat1 = latin * Math.PI/180.0;
var lon1 = lonin * Math.PI/180.0;
var d = radius/3956;
var x;
for (x = 0; x <= 360; x += 10) {
var tc = (x/90) * Math.PI/2;
var lat = Math.asin(Math.sin(lat1) * Math.cos(d) + Math.cos(lat1) * Math.sin(d) * Math.cos(tc));
lat = 180.0 * lat/Math.PI;
var lon;
if (Math.cos(lat1) == 0) {
lon = lonin; // endpoint a pole
}
else {
lon = ((lon1 - Math.asin(Math.sin(tc) * Math.sin(d)/Math.cos(lat1)) + Math.PI) % (2 * Math.PI)) - Math.PI;
}
lon = 180.0 * lon/Math.PI;
var loc = new VELatLong(lat, lon);
locs.push(loc);
}
return locs;
}
Это то, что моя карта выглядит как после того, как я добавил и защелки я заселил круг на карте, с ним вокруг одно из мест, и с радиусом в 50 миль.
, что я хочу быть в состоянии сделать
Я хочу, чтобы иметь возможность использовать либо JavaScript или C#, чтобы обнаружить, что другие PushPins, кроме того, круг вокруг, являются в радиусе центра. Или, проще говоря, какие другие местоположения/кнопки находятся в круге и заполняют список значениями каждого адреса. Я не могу придумать никаких специальных методов, которые могли бы сделать это, чтобы любая помощь была оценена. Это Bing-карты, которые я использую.
Я, хотя я использовал версию 7? Разве я не? Большое спасибо, я дам ему шанс, это имеет смысл, поэтому я думаю, что это сработает, и я буду держать вас в курсе. Приветствия. – Benny
Все имена классов, которые вы упоминаете, начинаются с VE. VE означает Virtual Earth, которая была переименована в Bing Maps до выпуска V7. Вместо этого V7 использует пространство имен для таких классов, как Microsoft.Maps.Map. Документацию по V7 можно найти здесь: http://msdn.microsoft.com/en-us/library/gg427610.aspx – rbrundritt