8

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?

  • 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
5

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.

4

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.

  • 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
3
  • 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.

  • 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
3

The simplest fix for this issue is to use the QuickMapServices plugin in QGIS. This will solve the problems of the scale changing with the zoom. enter image description here

After installing the plugin, just open the settings and click on the 'get contributed pack' from the 'More Services' tab to get a bigger option of basemaps to add (Google and others) enter image description here

2

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.

  • 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
1

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>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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