UMarker triggerEvent

發表於 十二月 17, 2008. 分類: API問題 |

triggerEvent可以讓你直接觸發marker上自定義的監聽事件,通常會做一個地標列表列出所有的marker,當點選列表時觸發原本榜定在marker上的事件。

        var map = new UMap(document.getElementById('map'));
        map.setControlType(U_FULL_CONTROL);
        map.centerAndZoom(new ULatLng(25.035405, 121.520255), 9);

        // 函式:用來產生一個會顯示指定號碼在訊息視窗中的地標
        function createMarker(point, number) {
          var marker = new UMarker(point);
          marker.setMouseonInfo('label:'+number, 'desc:'+number);
          var html = '地標 #<b>' + number + '';
          marker.addListener('click', function() {
            marker.openInfoWindow(html);
          });
          return marker;
        }

        // 加入十個隨機產生的地標
        var bounds = map.getBounds();
        var width = bounds.getNorthEast().lng() - bounds.getSouthWest().lng();
        var height = bounds.getNorthEast().lat() - bounds.getSouthWest().lat();
        for (var i = 0; i &lt; 10; i++) {
          var point = new ULatLng(bounds.getSouthWest().lat() + height * Math.random(), bounds.getSouthWest().lng() + width * Math.random());
          var marker = createMarker(point, i+1);
          map.addOverlay(marker);

          var a = document.createElement(&#039;a&#039;);
          a.href=&#039;#&#039;;
          a.innerHTML = marker.label;
          a.onclick = (function(m){
          	return function(){
          		m.triggerEvent(&#039;click&#039;);
          	};
          })(marker);
          document.getElementById(&#039;list&#039;).appendChild(a);
          document.getElementById(&#039;list&#039;).appendChild(document.createTextNode(&#039; &#039;));

觀看範例: http://www.urmap.com/SearchEngine/api/documentation/marker_triggerEvent.html

Make a Comment

發表迴響

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

連結到 %s

Liked it here?
Why not try sites on the blogroll...

Follow

Get every new post delivered to your Inbox.