Guest User

Untitled

a guest
Jun 21st, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. siteboundary=None
  2. for lyr in QgsMapLayerRegistry.instance().mapLayers().values():
  3. if lyr.name() == "@@@@@":
  4. layer 1 = lyr
  5. break
  6.  
  7. targetlayer=None
  8. for lyr2 in QgsMapLayerRegistry.instance().mapLayers().values():
  9. if lyr2.name() == "@@@@2":
  10. targetlayer = lyr2
  11. break
  12.  
  13. siteboundaryshapes = siteboundary.getFeatures()
  14. targetlayershapes = targetlayer.getFeatures()
  15.  
  16. for count,i in enumerate(siteboundaryshapes):
  17. siteboundarygeom = i.geometry()
  18. siteboundarybuffer = siteboundarygeom.buffer(1000,25)
  19. siteboundaryatt = i.attributes()
  20. print (siteboundaryatt[1])
  21.  
  22. for j in targetlayershapes:
  23. targetlayergeom = j.geometry()
  24. targetlayeratt = j.attributes()
  25.  
  26. if targetlayergeom.intersects(siteboundarybuffer):
  27. print (targetlayeratt[1])
  28. else:
  29. continue
  30.  
  31. layer 1 feature 1 attribute
  32.  
  33. layer 1 feature 2 attribute
  34. layer 2 feature 1 attrbute
  35. layer 2 feature 2 attribute
  36.  
  37. layer 1 feature 3 attribute
  38. layer 2 feature 1 attribute
  39.  
  40. layer 1 feature 4 attribute
  41. layer 2 feature 1 attribute
  42.  
  43. etc etc
  44.  
  45. layer 1 feature 20 attribute
  46.  
  47. from qgis.core import *
  48. import processing
  49.  
  50.  
  51. layer1 = processing.getObject('ne_10m_populated_places')
  52. layer2 = processing.getObject('ne_10m_admin_0_countries')
  53.  
  54. all_features = {}
  55. index = QgsSpatialIndex() # Spatial index
  56. for ft in layer1.getFeatures():
  57. index.insertFeature(ft)
  58. all_features[ft.id()] = ft
  59.  
  60. selection = [] # This list stores the features which contains at least one point
  61. features = layer2.getFeatures()
  62. for feat in features:
  63. inGeom = feat.geometry().buffer(1000,25)
  64. idsList = index.intersects(inGeom.boundingBox())
  65. #print "found %d points"%len(idsList)
  66. for id in idsList:
  67. testGeom = all_features[id].geometry()
  68. testGeomP = testGeom.asPoint()
  69. #print testGeomP.x(),testGeomP.y()
  70. if inGeom.intersects(testGeomP):
  71. if feat not in selection:
  72. selection.append( all_features[id])
  73. else:
  74. pass
  75.  
  76.  
  77. # Select all the polygon features which contains at least one point
  78. layer1.setSelectedFeatures([k.id() for k in selection])
Add Comment
Please, Sign In to add comment