Hi Chris On Fri, Apr 8, 2011 at 11:28 AM, Goo Creations <[email protected]> wrote: > Hi all > > I create a QgsVertexMarker and add it to the canvas: > > marker = QgsVertexMarker(self.iface.mapCanvas()) > marker.setCenter(point) > marker.setColor(QColor(0,255,0)) > marker.setIconSize(5) > marker.setIconType(QgsVertexMarker.ICON_CROSS) > marker.setPenWidth(3) > self.iface.mapCanvas().refresh() > > When I do this the marker is successfully added to the canvas. Everything is > fine, when the layers loaded to the canvas are locally available (eg: normal > raster or vector layers). > The problem comes in with remote layers such as Google layers. When I use > the code above on a canvas with a Google layer, it takes extremely long to > "add" the marker. > The problem lies in: self.iface.mapCanvas().refresh(). As far as I can see, > refresh() reloads the entire visible area, thus requesting the image again > from the Google server and slowing done the entire process.
You need to call refresh() of map canvas only when you really want all layers to be redrawn. This is not the case. Vertex markers (and other graphics items) are updated automatically when you set their position. When setting their properties the markers do not get updated (repainted) automatically, however you can force update of the marker easily: marker.update() Hope that helps Martin _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
