2016-07-11 2 views
1

Я пытаюсь использовать инфобокс в качестве всплывающей подсказки. Я хочу, чтобы инфобокс появлялся на кнопке, над которой мышь висела выше.Bing Maps v8 - Infobox не отображается в ожидаемом месте, когда карта уменьшена.

Эта функция работает нормально, когда карта достаточно увеличена. Однако, когда карта уменьшена, инфобокс иногда появляется с порта представления (инфобокс ведет себя так, как если бы карта была переведена горизонтально).

see here

Это мое подозрение, что карта просто оборачивать на себя, потому что это масштаб изображения почти весь путь. Возможно, это означает, что на холсте карты есть дубликаты координат, хотя они не отображаются в порт представления.

Пуговицы с координатами, которые отображаются только один раз на карте, показывают инфобокс в правильном месте.

Может ли кто-нибудь пролить свет на это? Любая помощь приветствуется.

Я включил базовую версию моего кода ниже.

var map; 
 
function loadMapScenario() { 
 
    map = new Microsoft.Maps.Map(document.getElementById('myMap'), { 
 
     credentials: 'api key', 
 
     maxZoom: 2, 
 
     enableSearchLogo: false, 
 
     disableBirdseye: true, 
 
     showDashboard: false, 
 
     showMapLabel: true, 
 
     showScalebar: false, 
 
     disablePanning: true, 
 
     disableZooming: true, 
 
     disableKeyboardInput: true, 
 
     disableMouseInput: false, 
 
     disableTouchInput: true, 
 
     disableUserInput: false 
 
    }); 
 

 
    var pushpins = Microsoft.Maps.TestDataGenerator.getPushpins(10, map.getBounds()); 
 

 
    var infoBox = new Microsoft.Maps.Infobox(pushpins[0].getLocation(), { title: 'title', 
 
    description: 'description', showCloseButton: false }); 
 

 
    infoBox.setMap(map); 
 

 
    for (var i = 0; i < pushpins.length; i++) { 
 
     var pushpin = pushpins[i]; 
 

 
     Microsoft.Maps.Events.addHandler(pushpin, "mouseover", function (e) { 
 
      infoBox.setLocation(e.target.getLocation()); 
 
     }); 
 
    } 
 

 
    map.entities.push(pushpins); 
 
}
<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <title>Bing Maps Full Width</title> 
 
     <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> 
 
    </head> 
 
    <body> 
 
     
 
     <div id='myMap' style='width: 100%; height: 500px;'></div> 
 
     <script type='text/javascript' src='js/maps.js'></script> 
 
     <script type='text/javascript' src='http://www.bing.com/api/maps/mapcontrol?branch=release&callback=loadMapScenario' async defer></script> 
 
    </body> 
 
</html>

EDIT

Удаление TestDataGenerator в пользу жестких закодированных значений координат дает ту же проблему.

See here.

Обновлено JS:

map = new Microsoft.Maps.Map(document.getElementById('myMap'), { 
    credentials: 'api key', 
    maxZoom: 2, 
    disableBirdseye: true, 
    showDashboard: false, 
    showMapLabel: true, 
    showScalebar: false, 
    disablePanning: true, 
    disableZooming: true 
}); 

var pushpins = [ 
    new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(-28.14, -79.08), null), 
    new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(-28.14, 108.51), null), 
    new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(-28.14, 95.03), null), 
    new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(-28.14, -134.58), null) 
]; 

ответ

0

Существует известная проблема с TestDataGenerator и "миром-оберткой", когда увеличенные все путями. Обратите внимание, что на карте отображаются не все 10 кнопок. Инфобокс отображается в правильном положении, но кнопка не отображается.

Кроме того, просматривая ваши варианты карт есть несколько, которые не нужны:

  • enableSearchLogo - Там нет поиска логотипа в V8.
  • disableBirdseye - Birdseye пока недоступен в V8. У нас есть новый опыт и образы , которые появятся позже в этом финансовом году. Когда выйдет birdseye , мы, скорее всего, выставим этот вариант. Вы можете оставить это в свой код, поэтому вам не придется вносить изменения позже.
  • disableKeyboardInput/disableMouseInput/disableTouchInput/disableUserInput не используется в V8
+0

Большое спасибо за ваш ответ скорейшего rbrundritt, и спасибо за ваши советы по удалению ненужных параметров карты. К сожалению, моя проблема связана не с TestDataGenerator. Я добавил редактирование, чтобы продемонстрировать проблему, используя жестко закодированные координаты, см. Второй снимок экрана. –

+0

Я не могу воспроизвести проблему, используя массив нажатых кнопок. Он отлично работает для меня. Я вижу только проблему с TestDataGenerator, которая заключается в том, что не все pushpins визуализируются, поэтому инфобокс выглядит так, как будто он не в том месте. – rbrundritt

+0

Я работаю с Chrome.Ваш последний комментарий вдохновил меня попробовать это в другом браузере, и действительно он отлично работает с Internet Explorer! Затем я попросил моего коллегу попробовать его, его результаты были противоположными (работает в Chrome, разбивается на IE). Излишне говорить, что я в тупике. –

Смежные вопросы