Simplemente demande el método CreateCircle en la ventana MapBasic, o simplemente póngalo detrás de un diálogo rápido y sucio con todas las matemáticas elaboradas detrás de la escena
Crear un círculo en MapBasic
CreateCircle( x, y, radius )
x is a float value of the circle's center.
y is a float value of the circle's center.
radius is a float value, indicating the circle radius.
En cuanto a la captura de un clic del ratón, lea el Manual de MapBasic especialmente "Crear declaración ButtonPad", pero usted tendría que escribir algún código personalizado para esto, un poco como esto:
Utilizar la función CommandInfo() con el CMD_INFO_X y CMD_INFO_Y y podrá recuperar la información del punto en el que pulse
desde aquí, puedes abrir un diálogo/código, con el que puedes añadir la funcionalidad de createCircle Ej.
Include "mapbasic.def"
Include "icons.def"
Declare Sub Main
Declare Sub get_map_click
Sub Main
Alter ButtonPad "Tools"
Add
Separator
ToolButton
Icon MI_ICON_CROSSHAIR
HelpMsg "Click on map"
Cursor MI_CURSOR_CROSSHAIR
DrawMode DM_CUSTOM_POINT
Calling get_map_click
Show
End Sub
Sub get_map_click
Note "x:" + Round(CommandInfo(CMD_INFO_X), 0.1) + Chr$(10) + "y:" + Round(CommandInfo(CMD_INFO_Y), 0.1)
'add code to create a circle to whatever layer you want
End Sub
Tendrías que pulsar el botón cada vez que quisieras capturar un punto.
EDITAR
Por favor, tenga en cuenta que no he escrito código MapBasic desde hace un par de tres años, así que por favor, eche un vistazo a la guía de usuario/referencia antes de comprometer esto a los datos de producción o cualquier tontería por el estilo. Estoy seguro de que así es como lo harías, pero asegúrate primero por favor.