Ok, I figured it out on my own. Here're the code snippets for computing
the center of a layer in geographic coordinates, and then doing the same
for the current viewport.
First by layer:
layerCenter = layer.extent().center()
if layer.crs().geographicFlag() : # if already lat/long, do nothing
return layerCenter
else :
sourceCRC = layer.crs() # get the coordinate reference system
being used
# 4326 is WGS 84
coordinateTransform = QgsCoordinateTransform(sourceCRC.toWkt(),
QgsCoordinateReferenceSystem(4326).toWkt())
return coordinateTransform.transform(layerCenter)
And now the center of the viewport in geographic coordinates:
layerCenter = mapCanvas.extent().center()
if mapCanvas.mapSettings().hasCrsTransformEnabled() : # if
projected, do inverse projection to geographic coordinates
sourceCRC = mapCanvas.mapSettings().destinationCrs() # get the
coordinate reference system being used
# 4326 is WGS 84
coordinateTransform = QgsCoordinateTransform(sourceCRC.toWkt(),
QgsCoordinateReferenceSystem(4326).toWkt())
inverseLayerCenter = coordinateTransform.transform(layerCenter)
return inverseLayerCenter
else :
return layerCenter
Do you think these would make for good additions to the "Code Snippets"
section
<http://docs.qgis.org/2.2/en/docs/pyqgis_developer_cookbook/snippets.html>
for the online documentation?
Cheers,
Mark
--
[email protected]
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer