2017-01-30 20 views
1

Я создал несколько infoboxes с помощью BingMaps V8 API.Bing Maps Infobox

Проблема, с которой я столкнулся здесь, когда infobox находится к углам карты, детали от infobox обрезаны.

информация снята. Я хочу AutoPan:

enter image description here

Код:

var ParseLatLogXml = function(xml, address){ 
    if(typeof xml.resourceSets["0"].resources === "undefined" || xml.resourceSets["0"].resources.length === 0) 
    { 
    console.log("Lat Long of Address not found: " + address); 
    return []; 
    } 

    return [ xml.resourceSets["0"].resources["0"].geocodePoints["0"].coordinates["0"], 
       xml.resourceSets["0"].resources["0"].geocodePoints["0"].coordinates["1"] ]; 
    }; 

    var AddStore = function(storeNumb ,storeID, storeName, city, state, addr, phone, zip, distance, lat, long){ 

    var _loc = new Microsoft.Maps.Location(parseFloat(lat), parseFloat(long)); 
    var _pin = new Microsoft.Maps.Pushpin(_loc, { 

                 icon: '-/media/1044109b112b479bb98e4daf6154e817.ashx', 
                 anchor: new Microsoft.Maps.Point(20, 20) 
                } 
    ); 
    var adder = addr + '\r\n' + city + '\r\n' + zip + state + "\r\n" + storeName 
    // Create the infobox for the pushpin 
    var _infoBox = new Microsoft.Maps.Infobox(_pin.getLocation(), 
    { width: 300, 
    height: 150, 
    title: storeName, 
    description: distance + " miles" +'<br>' + addr +'<br>'+ city + " "+ zip +'<br>'+ phone , 
    offset: new Microsoft.Maps.Point(10,15), 
    showCloseButton: false, 
    visible: false 
    }); 

    // Add handler for the pushpin click event. 

    // Microsoft.Maps.Events.addHandler(_pin, 'click', displayInfobox); 
    Microsoft.Maps.Events.addHandler(_pin, 'mouseover', function() { 
    _infoBox.setOptions({ autoPan:true, visible: true }); 
    }); 
    Microsoft.Maps.Events.addHandler(_pin, 'mouseout', function() { 
    _infoBox.setOptions({ autoPan:true, visible: false }); 
       }); 

map.entities.push(_pin); //[locNum] 
     _infoBox.setMap(map); 

Я попытался с помощью автоматического панорамирования, который я не уверен, если это будет делать трюк. Может кто-нибудь помочь мне в этом.

Я также попробовал повторное позиционирование ifobox и что dinot помогите.

Я использовал ниже ссылки для справки:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/cf803dd2-0f56-429e-863b-9f9a6480ff17/bing-maps-v8-api-repositioning-an-infobox?forum=bingmapsajax

ответ

0

Там нет встроенного в панорамировании или репозиционирования логики в классе Infobox в Bing Maps. Самым простым решением было бы сосредоточить карту на кнопке при открытии инфобокса, хотя это было бы лучше, если бы использовало событие click, чтобы открыть инфобокс, а не событие mouseover. Использование событий mouseover/mouseout приведет к закрытию инфобокса, если положение инфобокса изменилось.

Другой вариант - использовать пользовательский модуль Infobox здесь: http://bingmapsv7modules.codeplex.com/wikipage?title=Custom%20Infobox%20Control Инфобокс в этом модуле переопределяет, как он отображается в зависимости от того, где на карте находится кнопка. Если кнопка находится в верхнем правом углу, инфобокс отображается в левом нижнем углу кнопки. Исходный код этого модуля можно найти здесь: http://bingmapsv7modules.codeplex.com/SourceControl/latest#BMv7Plugins/BMv7.CustomInfobox/scripts/V7CustomInfobox.js

+0

Это не относится к v8, я не могу найти обходной путь для v8. Предлагаемое решение для v7. –

+0

Этот модуль также работает с v8. Большинство из этих модулей v7. V8 совместим более чем на 90%. На этом сайте модуля есть таблица, в которой перечислены те, которые были протестированы против v8. – rbrundritt

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

  • Нет связанных вопросов^_^