2016-07-28 84 views
0

我試圖點擊openlayers3中的地圖點擊功能信息。我在控制檯一樣的TypeError收到錯誤消息:layer.getSource(...)爲空 我的點擊功能map.on點擊不在openlayers3中工作

map.on('click', function (evt) { 
    var fl = map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) { 
     return { 'feature': feature, 'layer': layer }; 
    }); 

    var feature = fl.feature; 
    layer = fl.layer; 
    if (layer == vectorlayer) { 
     var admin = "<table>"; 
     admin += "<tr><td style='color:green; border: 0px solid red;text-align:left;vertical-align:middle;font-size:15px;'><b> Information<b></td></tr>"; 
     admin += "<tr><td><b>Type</b></td><td>:</td><td >" + feature.get('field1') + "</td></tr>"; 
     admin += "<tr><td><b>District</b></td><td>:</td><td>" + feature.get('district') + "</td></tr>"; 
     admin += "<tr><td><b>Taluk</b></td><td>:</td><td >" + feature.get('taluk') + "</td></tr>"; 
     admin += "<tr><td><b>Village</b></td><td>:</td><td>" + feature.get('village') + "</td></tr>"; 
     admin += "<tr><td><b>code</b></td><td>:</td><td>" + feature.get('field2') + "</td></tr>"; 
     $("#Identifier").html(schooladmin); 
     $("#Identifier").dialog('open'); 
     schooladmin += "</table>"; 
     } 
}); 
+0

你怎麼聲明圖層??????它們是什麼樣的層次?他們都有一個適當的來源附加他們嗎?最好做一個小提琴來演示你的情況 – pavlos

回答

0

這不是點擊功能,這是一個pointermove功能,如果你想使用click互動你必須給逮住事件更改singleClick,像這樣:

map.on('singleclick', function(evt){ 
    //... 
});