Visio Guy

Visio Discussions => General Visio => Topic started by: Miki on July 19, 2016, 03:07:12 PM

Title: Dynamic map shape
Post by: Miki on July 19, 2016, 03:07:12 PM
Hello,
I have been using Visio to do layout planning where I bring Google Earth aerial image in Visio, scale it and use it as the base. This has been a very helpful method. This is good only when I am working with a small footprint (few hundred acres area). It provides a good resolution so you can see things when you zoom in. However, when I am working with a large footprint (few thousand acres area), it becomes difficult to see things when you zoom into it as the image resolution is not good enough. This even after I use the maximum resolution output from Google Earth.

My question is, is there a way to have google earth or bing maps aerial to be programmed in a shape where everytime you zoom in, the resolution changes dynamically. Just like google earth, where, as we zoom in the area becomes much clear.
Is there any API's that we can use?
Has anyone tried it? or thought about it?

Its just like the aerial imagery in GIS, where, as we zoom in the image becomes much clear.

Any help or reference will be helpful.

-Miki
Title: Re: Dynamic map shape
Post by: Miki on May 11, 2017, 09:09:06 PM
Coming back to my question which was posted a while ago.
I am still looking if this is possible.
Any thoughts?

- Miki
Title: Re: Dynamic map shape
Post by: wapperdude on May 11, 2017, 10:50:43 PM
So you don't feel ignored...

I kinda doubt any one has tried this.  But, maybe someone has an idea.

Wapperdude
Title: Re: Dynamic map shape
Post by: Yacine on May 12, 2017, 12:51:47 PM
There are several possibilities to swap displays.
For my part, I chose to set a view on an imported bitmap image and scroll via a custom property (prop.zoom)

Prop.zoom references a similar cell at page level (This way the code is easier to handle)

Prop.zoom of the page is set by an event handler which listens to the viewChanged event of the page.

Class listener:

Dim WithEvents vsoWindow As Visio.Window

Private Sub Class_Initialize()

Set vsoWindow = ActiveWindow

End Sub

Private Sub Class_Terminate()

Set vsoWindow = Nothing

End Sub


Private Sub vsoWindow_ViewChanged(ByVal Window As IVWindow)
On Error GoTo errHandler
    Debug.Print Window.Zoom
   
    Select Case Window.Zoom
    Case Is < 1: Window.Page.PageSheet.Cells("prop.Zoom").FormulaU = "1"
    Case Is < 2: Window.Page.PageSheet.Cells("prop.Zoom").FormulaU = "2"
    Case Else: Window.Page.PageSheet.Cells("prop.Zoom").FormulaU = "3"
    End Select
Exit Sub
errHandler:
    Debug.Print "error in vsoWindow_ViewChanged"; Err.Description
End Sub


in ThisDocument:
Dim myListener As Listener

Private Sub Document_DocumentSaved(ByVal doc As IVDocument)

Set myListener = New Listener

End Sub

Private Sub Document_BeforeDocumentClose(ByVal doc As IVDocument)

Set myListener = Nothing

End Sub


You could also make the visibility of layers depend on the zoom level.
Title: Re: Dynamic map shape
Post by: Miki on May 22, 2017, 04:52:18 PM
Yacine,
Thats not a bad way to look at it.
I am going to give this one a try.

Thank you.
Title: Re: Dynamic map shape
Post by: Yacine on May 22, 2017, 05:06:56 PM
As I wrote previously, this is only one of many different ways to attack the problem.
I'd love to follow the development of your work. Don't hesitate to ask when you get stuck.