Subscribe to this thread
Home - General / All posts - Adding graticule lines to a map for printing and adding scale bars??
Michael Hammill11 post(s)
#07-Jan-21 14:36

Hi,

I am interested in producing location maps for a rock climbing guide book and can't seem to find any reference in the help material to adding a graticule (Ordnance Survey GB coordinate system) or a scale bar. Just being able to add the graticule would be enough.

Also when I import Google satellite and Bing street map layers why don't they stack up. I worked with ARC GIS for years and everything I imported into the mxd layered perfectly.

Best wishes,

Mike Hammill

oeaulong

304 post(s)
#07-Jan-21 22:35

Hey Mark.

I would love to see some nice special market map product. Good luck.

re: Graticule. Manifold v8 had a Grid and Graticule set of dialogs that has always worked for me. I don't know how to duplicate the creation and control over these generated layers in Mfd9. I am sure it is akin to TJHB's hex tesselation sqlwonder. < *wantlist* >

Can you post a small .map (.mxb) file that illustrates the layer issues?

Michael Hammill11 post(s)
#08-Jan-21 10:04

Hi there,

I am sure that Manifold can create an interactive rock climbing guide - but it isn't going to be easy! As an example look no further than the Manifold Civil War Battlefields demo. The various layers are not georeferenced with one another. Switch between them and the scales change. This should not happen - if you zoom in to one layer it should apply to all the others. Also finding it difficult to change the transparency: I want a satellite image base with 0% transparency overlain by the street map - linework only, no fill so I can see the satellite image and the battlefield points on top. These could be failings of Viewer?? Or do I have to create another file / layer and copy all the components into it? The demo videos all seem to start with the components loaded and the actual setting up process is missing.

Best wishes,

Mike

Dimitri


6,436 post(s)
#08-Jan-21 15:22

As an example look no further than the Manifold Civil War Battlefields demo. The various layers are not georeferenced with one another. Switch between them and the scales change.

I just tried that and all the layers line up perfectly. Example: pop open the Civil_War_Battles project, double-click the Map to open it, and then the Locations folder in the Project pane, right-click on the Gettysburg location and choose view in Active Window.

It pans and zooms exactly to Gettysburg, with the dot placed right where it should be. There are only three layers, the Battlefields layer, and the two Bing layers in the Map, and they all line up perfectly.

Turn the Bing satellite layer on, and then in the Layers pane set the transparency of the Bing streets layer to 50% and you can see that the two Bing layers are perfectly georegistered... no surprise given that they're both from Bing. Change between layers (you can turn layers off and on either in the Layers pane or by double-clicking the layer tab) and you'll see that does not change the scale.

I get the feeling when you write "layers" you may mean "locations," which are a different thing. As far as I can see, most of the locations have a scale of 1:10,000 but if the author of the project wanted a different scale for some of the locations, say, if the size of the battlefield would be better seen at a different scale, well that's part of the value of locations that you can do that.

I want a satellite image base with 0% transparency overlain by the street map - linework only, no fill so I can see the satellite image and the battlefield points on top. These could be failings of Viewer?? Or do I have to create another file / layer and copy all the components into it? The demo videos all seem to start with the components loaded and the actual setting up process is missing.

All that's easily done, in Viewer as well as 9. Check out the documentation on image servers, as there are thousands of them that can be used, and some of them do, indeed, provide street layers with transparency in between the streets ("Google Maps Street Map (Transparent)," for example).

As for demos, see the many videos on the Videos page and read the introductory books in the documentation. There are hundreds of step by step examples in the Examples book of the user manual. Many of those and a lot of the videos start off from zero.

Michael Hammill11 post(s)
#08-Jan-21 15:46

Thanks Dimitri, I will take the time to go through it all slowly over the next few days. I decided to buy Manifold 8 because it had a better documentation allowing me to focus in more accurately to what I wanted. I hope that I will eventually find it can decode MrSid and link to Google satellite - which is important to me. Best wishes, Mike

Peter Ronning
10 post(s)
#21-Jan-21 18:38

I have seen allusions to scripts for creating graticules or UTM/National Grid lines in M9. Are there some canned scripts available for this? If so, can anyone point me at them?

oeaulong

304 post(s)
#21-Jan-21 20:52

Best thing to do, currently, is to use Mfd8 to generate and import them to M9.

Mythman
49 post(s)
#22-Jan-21 00:51

oeaulong is right. Just remember to make a copy of the M8 file and open that copy in M9. You'll not be able to open the original file in M8 otherwise.

Peter Ronning
10 post(s)
#22-Jan-21 19:53

Fair enough, thanks. Seems kind of tedious, but I chose to do this project in M9 for the speed, and I guess this is the price I pay.

oeaulong

304 post(s)
#23-Jan-21 01:11

if you need some Mfd8 help with the grid/graticule please let me know.

Sloots

497 post(s)
#23-Jan-21 12:59

Here my little piece of SQL to create grids (points or areas). Start with a drawing called Frame that contains a polygon that roughly describes the area of interest. The projection of this drawing is used for the resulting grid as well, and must be in meters (not in lat/lon). I just tested it with a Frame in lat/lon, and that worked well. After creation I shows nicely in the Eckert IV projection for example.

Modify the value of the @width, @height and @snap parameters. Width/height is the size of the gridcell and @snap determines if the starting corner is the bottom-left of the frame polygon of the nearest (smaller) coordinate that is a multiple of the grid size.

The query creates a table with two geometry fields, one for the points and one for the areas. For both a drawing is created.

Hope this is useful for you (and others).

-- $manifold$

VALUE @width INT64 = 1000; -- width of the grid in meters

VALUE @height INT64 = 1000; -- height of the grid in meters

VALUE @snap BOOLEAN = TRUE-- if TRUE snap to the first multiple of grid size otherwise use bottomleft of the frame

SELECT

 [value] AS [col]

 [value 2] AS [row]

 [Value] * @width + bottomLeftX as [x]

 [Value 2] * @height + bottomLeftY as [y]

 , GeomMakePoint(

 VectorMakeX2(

 [Value] * @width + bottomLeftX

 [Value 2] * @height + bottomLeftY

 )

 as [geom_point]

 , GeomMakeRect(

 VectorMakeX4(

 [Value] * @width + bottomLeftX

 [Value 2] * @height + bottomLeftY

 , ([Value] + 1) * @width + bottomLeftX

 , ([Value 2] + 1) * @height + bottomLeftY

 )

 as [geom_area]

INTO

 [Grid Table]

FROM

 (

SELECT

 CASE @snap

 WHEN TRUE

 THEN Floor(bottomLeftCornerX / @width) * @width

 ELSE bottomLeftCornerX

 END as bottomLeftX

 CASE @snap

 WHEN TRUE

 THEN Floor(bottomLeftCornerY / @height) * @height

 ELSE bottomLeftCornerY

 END as bottomLeftY

-- , Ceil(width / @width) AS cols

-- , Ceil(height / @height) AS rows

 SPLIT CALL ValueSequence(0, Ceil(width / @width), 1) -- cols

 SPLIT CALL ValueSequence(0, Ceil(height / @height), 1) -- rows

FROM

(

 -- Get width and height of the frame

 SELECT

 VectorValue(GeomBoundsX([Geom]), 0) AS bottomLeftCornerX

 , VectorValue(GeomBoundsY([Geom]), 0) AS bottomLeftCornerY

 , VectorValue(GeomBoundsX([Geom]), 1) - VectorValue(GeomBoundsX([Geom]), 0) AS width

 , VectorValue(GeomBoundsY([Geom]), 1) - VectorValue(GeomBoundsY([Geom]), 0) AS height

 FROM [Frame]

)

)

;

ALTER TABLE [Grid Table] (

  ADD [mfd_id] INT64,

  ADD INDEX [mfd_id_x] BTREE ([mfd_id]),

  ADD INDEX [geom_point_x] RTREE ([geom_point]),

  ADD INDEX [geom_area_x] RTREE ([geom_area]),

  ADD PROPERTY 'FieldCoordSystem.geom_area' ComponentFieldCoordSystem([Frame]'Geom'),

  ADD PROPERTY 'FieldCoordSystem.geom_point' ComponentFieldCoordSystem([Frame]'Geom')

);

CREATE DRAWING [Grid Points] (

  PROPERTY 'FieldGeom' 'geom_point',

  PROPERTY 'Table' '[Grid Table]'

);

CREATE DRAWING [Grid Areas] (

  PROPERTY 'FieldGeom' 'geom_area',

  PROPERTY 'Table' '[Grid Table]'

);

Chris

Attachments:
grid-eckert-iv-projection.png


http://www.mppng.nl/manifold/pointlabeler

HMS
126 post(s)
#23-Jan-21 18:02

Hi Sloots, this is of great use indeed and it works perfectly.

Thanks for sharing it!

RAR80 post(s)
#23-Jan-21 22:48

This is very useful.

Thank you!!!

Manifold User Community Use Agreement Copyright (C) 2007-2019 Manifold Software Limited. All rights reserved.