Masarykova univerzita

- Identifikace v mapě

Upozornění Toto je starší verze (2.1.1) munimapu. Doporučujeme použít nejnovější verzi.
Výsledek identifikace:
Pro zobrazení informací vyberte objekt v mapě.


Objekty v mapě (budovy / místnosti / dveře) mají své jedinečné identifikátory. Pro jejich zjištění přidejte parametr identifyCallback a do něj callback funkci. Po kliknutí do mapy se spustí hledání objektů a výsledky (včetně souřadnic) se předají této funkci jako parametr. Callback by měl vracet hodnotu true/false, podle které se zobrazí/nezobrazí "špendlík" v mapě. Pokud potřebujete, aby mohl uživatel vybrat jen určitý typ objektu, využijte parametr identifyTypes. V tomto příkladu lze vyhledávat budovy, místnosti i dveře a identifikované objekty jsou vypsány jako prostý text přímo do webové stránky.

<script type="text/javascript">

  /**
   * @param {{
   *   coordsInMeters: (ol/coordinate/Coordinate|undefined),
   *   coordsInDegrees: (ol/coordinate/Coordinate|undefined),
   *   buildingCode: (string|undefined),
   *   roomCode: (string|undefined),
   *   doorCode: (string|undefined)}} result 
   * @return {boolean} 
   */
  var identifyCallback = function(result){
    var el = document.getElementById('identifyResult');
    var childEl = document.createElement('div');
    childEl.innerHTML = (            
      "Souřadnice v metrech (x, y): " + result.coordsInMeters + "<br>" +
      "Souřadnice ve stupních: " + result.coordsInDegrees + "<br>" +
      "Identifikátor budovy: " + result.buildingCode + "<br>" +
      "Identifikátor místnosti: " + result.roomCode + "<br>"+
      "Identifikátor dveří: " + result.doorCode + "<br>"
    );

    if(el.hasChildNodes()){
      var child;
      while ((child = el.firstChild)) {
        el.removeChild(child);
      }
    } 
    el.appendChild(childEl);

    //there might be an aditional condition
    //return true => show marker 
    //return false => do not show marker
    return true;

  }; 

  munimap.create({
    target: 'map',
    markers: ['BHA36'],
    identifyTypes: ['building', 'room', 'door'],
    identifyCallback: identifyCallback
  });
</script>
      

V příkladu použité parametry funkce munimap.create jsou následující:

Parametr markers akceptuje polohový kód budovy (nebo jejich seznam oddělený čárkou). Tyto polohové kódy můžete k jednotlivým budovám dohledat například v aplikaci Kompas.

Parametry identifyTypes a identifyCallback jsou experimentální. V tomto konkrétním příkladě jsou definovány všechny možné typy objektů k indentifkaci a funkce, která po kliknutí v mapě tyto objekty vypíše.

Více se dozvíte v naší dokumentaci.