Map Point VBA - Plotting circles

Phil Holt
01-23-2006, 03:43 PM
I need to add a number of radii as an additional layer over existing (point) data.

I know how to draw a radius and fix the diameter manually, but I want to be able to run a macro which does this for a number of centroids. I will have the co-ordinates of the centroids each time.

I am guessing that if I plot these centroids as points (using linked data); there might be a way of plotting a circle over each point? Ideally this would be as a transparent layer (below my other data, but above all other data including streets).

Any help much appreciated

Eric Frost
01-24-2006, 05:34 AM
You are correct. Take a look at the object model. There are Draw object methods which you can use to take a lat/lon and generate a circle.
Eric

I.T.
02-05-2006, 05:33 AM
The following draws a series of circles around given locations. The locations have been included just for demo purposes.


Dim oMap As MapPoint.Map
Dim locpin(1 To 5) As MapPoint.Location
Dim iRad, c As Integer
Set oMap = GetObject(, "MapPoint.Application.EU.11").ActiveMap
oMap.Application.Units = geoKm

Set locpin(1) = oMap.FindResults("Buckingham Palace, London, UK")(1)
Set locpin(2) = oMap.FindResults("Northolt, London, UK")(1)
Set locpin(3) = oMap.FindResults("Greenwitch, London, UK")(1)
Set locpin(4) = oMap.FindResults("Crystal Palace, London, UK")(1)
Set locpin(5) = oMap.FindResults("Wimbledon Common, London, UK")(1)

oMap.FindResults("London, UK")(1).GoTo

iRad = 3 ' sets the radius of the circle to 3km
For c = 1 To 5
oMap.Shapes.AddShape(geoShapeRadius, locpin(c), iRad * 2, iRad * 2).Name = "Loc No." & CStr(c)
Next c


This draws circles around each location. This could be extended to account for each location in your dataset and by adjusting the "iRad" value you could easily make the size of each circle represent a value associated with the location.

Hope this helps

I.T.

 
Web mp2kmag.com
mapforums.com