Виртуальная Земля (Bing) Pin "движется" при изменении уровня масштабирования - PullRequest
0 голосов
/ 20 апреля 2010

Создана карта Virtual Earth (Bing), чтобы показать простой значок в определенной точке. Все работает прямо сейчас - пин-код появляется, заголовок и описание выскакивают при наведении курсора.

Карта изначально полностью увеличена в булавке, но странная проблема в том, что при уменьшении масштаба она перемещается немного ниже на карте. Так что, если я начну с булавки, указывающей куда-нибудь в Торонто, если я достаточно уменьшу масштаб, булавка окажется в середине озера Онтарио! Если я перемещаю карту, штифт правильно остается на своем месте. Когда я снова увеличиваю масштаб, он немного поднимается, пока не вернется в исходное правильное положение!

Я какое-то время искал решение, но совсем не понимаю. Пожалуйста помоги!!

Большое спасибо!

import with javascript: http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2

$(window).ready(function(){

    GetMap();
});

map = new VEMap('birdEye');

map.SetCredentials("hash key from Bing website");

map.LoadMap(new VELatLong(43.640144 ,-79.392593), 1 , VEMapStyle.BirdseyeHybrid, false,  VEMapMode.Mode2D, true, null);

var pin = new VEShape(VEShapeType.Pushpin, new VELatLong(43.640144 ,-79.392593));

pin.SetTitle("Goes to Title of the Pushpin");

pin.SetDescription("Goes as Description.");

map.AddShape(pin);

Ответы [ 3 ]

4 голосов
/ 23 февраля 2012

У меня была такая же проблема. Однако мой код, похоже, использует методы Microsoft.Maps AJAX. Я устанавливаю места событий на карте Bing, которую я получил, запрашивая API Facebook для user_events и friend_events. Событие было возвращено мне с широтой и долготой. Я использовал эти координаты для размещения индивидуально стилизованного вывода для отдельных выводов и кластерных выводов. Когда я уменьшил масштаб, зелья сдвинулись, и было получено нереалистичное представление о месте события.

ОТВЕТ:

Я обнаружил, что вы должны установить свойство "привязки" для кнопки.

Вот то, что я нашел, что работает хорошо.

    var pushpinOption = {
      icon : 'images/cluster_custom.png',
      text : ''+ clusterInfo.dataIndices.length + '',
      textOffset:offset,
      anchor :  new Microsoft.Maps.Point(8, 8)
    };

Ресурсы: Пример использования анкерного pushpinoption Примечание * Посмотрите на «Кластеризацию модуля загрузки» Вам нужно будет нажать на первую ссылку в разделе «Загрузка модулей». http://www.bingmapsportal.com/isdk/ajaxv7#LoadingDynamicModule2

Документация по кнопке «Якорь» http://msdn.microsoft.com/en-us/library/gg427629.aspx

0 голосов
/ 23 июля 2011

Попробуйте добавить PositionOrigin к кнопке, установите для него значение «Центр» или что-то еще.

0 голосов
/ 10 января 2011

Не совсем тот / ответ, который вы ищете, но у меня возникла точная проблема, и я обнаружил, что "движение" происходит на моих выводах, для которых я объявил преобразование масштаба.

  StoreEditPushPin pin = new StoreEditPushPin(Colors.Red);
  pin.Location = new Location(43.640144 ,-79.392593);
  ScaleTransform st = new ScaleTransform();
  st.ScaleX = 0.55;
  st.ScaleY = 0.55;
  pin.RenderTransform = st;
  PushPinLayer.AddChild(pin, d);

При уменьшении масштабный коэффициент применяется к выводу, а местоположение смещается. Я хотел бы взглянуть на ваш класс Pushpin, чтобы увидеть, существует ли преобразование.

...