Nokia here maps api

Използвам тук карти на nokia. Виждал съм, че бутонът за управление на картата (бутон за превключване за показване/скриване на трафика, бутон за превключване за показване/скриване на обществения транспорт) изчезва, ако картата е в малък контейнер div. Има ли начин да се избегне това поведение (например чрез преместване/преоразмеряване на контролата)?

Използвах стандартния примерен код за основна карта с компоненти: https://developer.here.com/javascript-apis/enterprise-api-explorer

и поставете картата в div, който се преоразмерява според ширината на екрана (Ето моя javascript)

<script>
    window.onload=window.onresize=function(){
    $("#bigMapContainerTraff").width($(window).width()-50);
    $("#bigMapContainerTraff").height($(window).height()-50);};
</script>

person user3098549    schedule 14.01.2014    source източник


Отговори (1)


Стандартните контроли са точно това - стандартни контроли, които не предлагат много по отношение на гъвкавостта, но осигуряват последователност между приложенията. Ако искате да направите нещо друго, ще бъде много по-добре да напишете персонализиран компонент от нулата:

function extend(B, A) {
    function I() {}
    I.prototype = A.prototype;
    B.prototype = new I();
    B.prototype.constructor = B;
}

var myCustomComponentSimple = function (callback) {
    var myNode = document.createElement("div"); 
    this.callback = callback;   
    this.getId = function() { return "MySimpleCustomComponent"; };  
    this.attach = function(display) {

var myHTML = '<div  id="myCustomComponentButton" style="position: absolute; left: 5px; top: 5px;' +
          'background: #ccc; border: 1px solid #000; padding: 10px;" />';

        myNode.innerHTML = myHTML;

        display.getUIContainer().appendChild(myNode);
        if(!this.button) {
            this.button =  nokia.maps.dom.EventTarget(
                             document.getElementById(
                                     "myCustomComponentButton"));
        }

        this.button.addListener("click", this.callback);
    };
    this.detach = function(display) {
        display.getUIContainer().removeChild(myNode);
        this.button.removeListener("click", this.callback);
    };

    // Call the "super" constructor to initialize properties
    nokia.maps.map.component.Component.call(this);

};
extend(myCustomComponentSimple, 
            nokia.maps.map.component.Component);


var customControl = new myCustomComponentSimple(function(){ 
  alert("doSomething");

    });
    map.components.add(customControl);

Простият контрол инжектира единичен <DIV> в DOM и предоставя функция за обратно извикване за събитието click - тъй като имате контрол върху стила на този елемент, можете да го поставите или стилизирате, както желаете. Можете лесно да копирате поведението на бутоните, като добавите превключвател за състоянието на картата, както е описано тук

person Jason Fox    schedule 16.01.2014