Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to digitize OpenLayers data (such as Google satellite imagery) with no success. Whenever I try to move or zoom the canvas the vector layer I digitized loses the position relative to the imagery.

I have read about this problem elsewhere but was not able to find a solution.

Does anyone have a solution as to how I can digitize satellite imagery for free in QGIS?

share|improve this question
    
I am also facing the similar problem when working with Google earth imagery. when I am digitizing at 1:1000 it just shift the shapefiles when i even pan the image. checked for CRS and everything but it doesnt work for mee too – user18926 Jun 7 '13 at 20:38
    
...or by flagging for moderator attention; the comment conversion is done. And @user18926 I also welcome you to GIS.se :) – matt wilkie Jun 7 '13 at 21:49
up vote 4 down vote accepted

For he time being at least you might be better off digitizing your shapes directly in Google Earth and saving them as KML (not KMZ) ready for importing to QGIS, where they can be reprojected to your required CRS.

N.

share|improve this answer

Make sure the data you're creating matches the projection from OpenLayers (I think it is EPSG:3857). Once you finish digitizing you can reproject the data to the projection you use in your day to day work.

share|improve this answer
    
Thanks for your help. This leads me to a story. I am teaching a GIS course using QGIS and on the digitation lesson everyone lost positional accuracy on 3857 probably when zooming too much. – yair suari Jan 9 '13 at 9:09
  • Some providers of imagery say you should not;

http://www.google.com/permissions/geoguidelines.html

  • When the plugin is opened, it automatically sets the CRS to 900913 or 3785. That is good, don't change it.

Once the CRS is set, if you zoom in too much (say 2500 depending on where in the world you are) positional accuracy is broken.

share|improve this answer
    
Thanks, This is great help since i think i can now identify the situation that breaks my accuracy – yair suari Jan 9 '13 at 9:03
    
you can accept the answer.... – Willy Jan 9 '13 at 9:46

There is a bug in the Openlayers plugin that affects only Google imagery in higher zoom levels. When reaching the highest zoom level available, the tiles are not enlarged or removed when zooming in further, but misaligned.

There is already a ticket for that: http://hub.qgis.org/issues/6822

I did not exerience that behaviour when using bing imagery or OSM tiles. So you may take those as reference or alternative.

share|improve this answer
    
Thank you Andre.This means the bug has probably got some regional effects. For me, in Israel. all plugin layers sometimes loose positional accuracy. – yair suari Jan 9 '13 at 9:06
    
I think the workaround by nhopton is the best solution for the moment. – AndreJ Jan 9 '13 at 9:13

I've been struggling with this for over two years now, but finally found a way to correctly use google earth imagery in qgis at high zoom levels:

Copy and paste the code below into an XML file and save it as Google.xml for instance.

Now go back into QGIS and add a new raster layer. [Layer > Add Layer > Add Raster Layer] and select the Google.xml file.

<GDAL_WMS>
<!-- Data is subject to term of use detailed at http://code.google.com/intl/nl/apis/maps/terms.html and
 http://www.google.com/intl/en_ALL/help/terms_maps.html -->

<Service name="TMS">
    <!-- <ServerUrl>http://mt.google.com/vt/lyrs=m&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Map -->
     <ServerUrl>http://mt.google.com/vt/lyrs=s&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Satellite -->
    <!-- <ServerUrl>http://mt.google.com/vt/lyrs=y&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Hybrid -->
    <!-- <ServerUrl>http://mt.google.com/vt/lyrs=t&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Terrain -->
    <!-- <ServerUrl>http://mt.google.com/vt/lyrs=p&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Terrain, Streets and Water  -->
</Service>
<DataWindow>
    <UpperLeftX>-20037508.34</UpperLeftX>
    <UpperLeftY>20037508.34</UpperLeftY>
    <LowerRightX>20037508.34</LowerRightX>
    <LowerRightY>-20037508.34</LowerRightY>
    <TileLevel>20</TileLevel>
    <TileCountX>1</TileCountX>
    <TileCountY>1</TileCountY>
    <YOrigin>top</YOrigin>
</DataWindow>
<Projection>EPSG:3857</Projection>
<BlockSizeX>256</BlockSizeX>
<BlockSizeY>256</BlockSizeY>
<BandsCount>3</BandsCount>
<MaxConnections>5</MaxConnections>
<Cache />
</GDAL_WMS>
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.