Hi All<div>I am trying to build an application in which I am unable to retrieve the featureId of the Feature at user clicked point, instead it is giving featureId one by one sequentially...</div><div>can any one help by giving some code in python.</div>
<div>My function is given as:</div><div><div><font class="Apple-style-span" color="#FF0000">def sel1(self,p,b):</font></div><div><font class="Apple-style-span" color="#FF0000"><br></font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">transform = self.canvas.getCoordinateTransform()</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">mapPoint = transform.toMapCoordinates(p.x(),p.y())</font></div>
<div><font class="Apple-style-span" color="#FF0000"><br></font></div><div><font class="Apple-style-span" color="#FF0000"><br></font></div><div><font class="Apple-style-span" color="#FF0000"><br></font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">provider = layer.getDataProvider()</font></div>
<div><font class="Apple-style-span" color="#FF0000"><br></font></div><div><font class="Apple-style-span" color="#FF0000"><br></font></div><div><font class="Apple-style-span" color="#FF0000">   </font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">feat = QgsFeature()</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">allAttrs = provider.allAttributesList()</font></div><div>
<span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">provider.select(allAttrs, QgsRect(), False)</font></div><div>
<font class="Apple-style-span" color="#FF0000"><br></font></div><div><font class="Apple-style-span" color="#FF0000"><br></font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">RubberBand=QgsRubberBand</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">g = feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(p.x(),p.y())))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">geom = feat.geometry()</font></div><div><font class="Apple-style-span" color="#FF0000"><br>
</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">RubberBand = QgsRubberBand(self.canvas,geom.vectorType() == QGis.Polygon) </font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">RubberBand.setToGeometry(geom,layer)</font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">RubberBand.setWidth(2)</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">RubberBand.setColor(Qt.red)</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">RubberBand.show()</font></div><div><font class="Apple-style-span" color="#FF0000"><br>
</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                </font></span><font class="Apple-style-span" color="#FF0000">while provider.getNextFeature(feat):</font></div>
<div><font class="Apple-style-span" color="#FF0000"><br></font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">attrs = feat.attributeMap()</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">self.screen = QTextEdit()</font></div><div><font class="Apple-style-span" color="#FF0000">    </font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">self.screen.setReadOnly(1)</font></div>
<div><font class="Apple-style-span" color="#FF0000">    </font><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">self.screen.show()</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">self.screen.setWindowTitle(<a href="http://self.tr">self.tr</a>(&quot;Identify Result&quot;))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">self.screen.setWindowIcon(QtGui.QIcon(os.path.join(os.path.dirname(__file__),&quot;\project\icons\mIconNew.png&quot;)))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">        </font></span></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">loc4 = QString(&quot;Map Coords :&quot;+ str(p.x()) + &quot;, &quot; + str(p.y()))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">self.screen.append(loc4)</font></div><div><font class="Apple-style-span" color="#FF0000"><br>
</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">loc1 = QString(&quot;\n&quot; + &quot;Feature ID : &quot; + str(feat.featureId()))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">self.screen.append(loc1)</font></div><div><font class="Apple-style-span" color="#FF0000"><br>
</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                        </font></span><font class="Apple-style-span" color="#FF0000">for k in attrs:</font></div><div><font class="Apple-style-span" color="#FF0000"><br>
</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                </font></span><font class="Apple-style-span" color="#FF0000">if k == 0:</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                        </font></span><font class="Apple-style-span" color="#FF0000">loc = QString(&quot;Plot Id&quot;  + &quot;: &quot; + str(attrs[k].toString()))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                </font></span><font class="Apple-style-span" color="#FF0000">if k == 1:</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                        </font></span><font class="Apple-style-span" color="#FF0000">loc = QString(&quot;Text Size&quot; + &quot;: &quot; + str(attrs[k].toString() ))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                </font></span><font class="Apple-style-span" color="#FF0000">if k == 2:</font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                        </font></span><font class="Apple-style-span" color="#FF0000">loc = QString(&quot;Text String&quot; + &quot;: &quot; + str(attrs[k]))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                </font></span><font class="Apple-style-span" color="#FF0000">elif k &gt; 2: </font></div><div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                        </font></span><font class="Apple-style-span" color="#FF0000">loc = QString(&quot;Field&quot; + &quot; &quot; + str(k) + &quot;: &quot; + str(attrs[k]))</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#FF0000">                                </font></span><font class="Apple-style-span" color="#FF0000">self.screen.append(loc)</font></div>-- <br>Regards<br>
Arpita<br>
</div>