2

Updated Question:

I have an ESRI shapefile of the US, with Alaska, Hawaii, etc, broken down by county.

I'm extracting the polygons (each representing a county) from the shapefile, and then displaying those points in a Java application, using the Swing 2D API.

This works fine, however, I'd like to 'move' Alaska, Hawaii, Guam, etc.
One option is to do this in Java.

Before I do that though, I'm wondering if it's possible to select, scale, and move, shapes in QGIS. I have found that there are several ways to select shapes: http://centigonknowledge.com/tutorial/editing-shapefiles/

However, I don't see a way to scale and move these shapes. I was thinking that there might be some way to do this as that tool seems to allow the creating of maps from scratch, and therefore might be expected to have this functionality.

Clearly for existing maps it makes no sense, and breaks all sorts of projection rules, I'm sure.

5
  • 1
    What software are you using -- ArcMap?
    – Erica
    Commented Dec 18, 2014 at 19:44
  • 1
    Could you just use a map layout to make additional portals for the data at different scales and map extents? Physically moving the location of data would mean that all future datasets would have to have the same procedure performed upon them (the same exact way).
    – Vince
    Commented Dec 18, 2014 at 19:56
  • Thanks, maybe I need to explain a bit more. I am actually taking the shp files and extracting the polygons, in Java, using OpenMap, and then drawing the maps using the polygon points in an Java application. It works fine for the continental US, but I need to move Alaska and Hawaii. I was about to manually capture their polygons and apply the translations and scaling myself, but I thought I'd see if QGIS could do this. I'm surprised that you can't identify a shape, and then move it.
    – Davem M
    Commented Dec 18, 2014 at 20:55
  • Please update the question to specify these constraints. You certainly can do this, but since doing so effectively corrupts the data you probably want to do this within your application, not in the dataset.
    – Vince
    Commented Dec 18, 2014 at 21:17
  • @Vince: question updated as requested.
    – Davem M
    Commented Dec 18, 2014 at 21:42

3 Answers 3

4

You don't want to do that. What you want to do is add a second and third data frames on your map (on layout), one for Alaska, and one for Hawaii.

4
  • This quick tutorial might give you some more info: teachmegis.com/tiptricks/AddingAnInsetMap.pdf Commented Dec 18, 2014 at 20:02
  • @Mox - see my comment above, I'm extracting the polygon vertices for display in a Java application. If I add an inset map, then: a) would the connection remain to the dbf attribute table, and b) would I be able to export the new map as a single layer, by doing some sort of merge?
    – Davem M
    Commented Dec 18, 2014 at 20:57
  • Hi @Mox. Can you elaborate a bit more on why he wouldn't want to do that. A downside perhaps?
    – R.K.
    Commented Dec 18, 2014 at 22:46
  • Adding any further data would be misery, as the further data would use the original coordinates, not his new arbitrary coordinates.
    – Mox
    Commented Dec 19, 2014 at 6:29
2

You can move your features using the Move Feature(s) tool on the Digitizing toolbar. Scaling is a little trickier, but can be done through the Affine tool in the Affine Transformations plug-in. See here for more on how to resize features in QGIS.

0

Another possibility is to use the QGIS SimpleSvg plug-in to convert the shapefile to SVG and then use the open source InkScape vector editor or Adobe Illustrator to manipulate the polygons which is trivial. The plugin will embed the attributes in the SVG XML.

I am confused about exactly how you're dealing with the shapefile in Java. Swing is just a graphics API so you must be converting the geographic coordinates to canvas coordinates at which point you'd lose track of the attributes without further programming. Last I remember Swing doesn't read shapefiles directly.

I'm assuming your comment about keeping track of the attributes is for labeling your map graphic in Swing. It would be helpful to know exactly how you're handling the data in Java. Most of the answers here assume you are creating a GIS map however I believe you are trying to create a simple map illustration. If that's not the case, there are a number of Java-based GIS libraries that would be better than manipulating GIS data using Swing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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