Hi,

I found two ways of doing that, I think the second is faster but not sure. (And I think they will both be slower than the random order code you were using before, but the order will remain.)

Good luck,
Raymond


---

layer = iface.activeLayer()

ids = layer.selectedFeatureIds()
print(ids)

# first option, loop all features and test if the id is in
# the selected ids:

for feat in layer.getFeatures():
    if feat.id() in ids:
        print(feat)


# second option, loop selected ids and get their feature:

ids.sort()
print(ids)

for id in ids:
    feat = layer.getFeature(id)
    print(feat)





On 04-06-19 06:01, Zhang Qun wrote:
Thanks Nyall. Then is there anyway i can get the original order? My data is road lane points and the sequence order represent the driving direction.

On Tue, Jun 4, 2019, 11:58 AM Nyall Dawson <nyall.daw...@gmail.com <mailto:nyall.daw...@gmail.com>> wrote:

    On Tue, 4 Jun 2019 at 13:38, Zhang Qun <zhangq....@gmail.com
    <mailto:zhangq....@gmail.com>> wrote:
     >
     > Hi,
     > Does anyone know how the features are ordered when you extract by
    selectedFeatures()? Is it in the same order as the input delimited
    text file? I'm asking because sometimes I found the looping does not
    give me the same order as in my data source.

    It's an unordered set - i.e. effectively random.

    Nyall


_______________________________________________
Qgis-user mailing list
Qgis-user@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

_______________________________________________
Qgis-user mailing list
Qgis-user@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to