Dynamic map shape

Started by Miki, July 19, 2016, 03:07:12 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Miki

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

Miki

Coming back to my question which was posted a while ago.
I am still looking if this is possible.
Any thoughts?

- Miki

wapperdude

So you don't feel ignored...

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

Wapperdude
Visio 2019 Pro

Yacine

#3
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.
Yacine

Miki

Yacine,
Thats not a bad way to look at it.
I am going to give this one a try.

Thank you.

Yacine

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.
Yacine