Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   MapObjects & Delphi (https://www.clubdelphi.com/foros/showthread.php?t=23364)

TriLoCBA 14-07-2005 18:23:32

MapObjects & Delphi
 
Como muestro dentro de un objeto TMap (llamado Map1) los label de un deteminado shapefile ???

Puntualmente, el shapefile contiene los tramos (arc) que representan cada una de las calles, y posee un campo NOM_CALLE, que lleva el nombre de las mismas.

Ya cree la capa correspondiente, le asigne color, y tipo de linea; pero no se como mostrar los nombres de calle:

Código:

  procedure TForm1.FormShow(Sender: TObject);
  var
  conexion: IMoDataConnection;
    Ly1,Ly2,Ly3,Ly4: IMoMapLayer;

  begin
   //Crear conexion con el directorio donde estan los datos...
  conexion :=  IMoDataConnection(CreateOleObject('MapObjects2.DataConnection'));
    conexion.Database:= 'C:\DatosGIS';
 

  if not conexion.Connect then exit;
 
   //Crear objetos Layer...
   Ly1:= IMoMapLayer(CreateOleObject('MapObjects2.MapLayer'));
 

   //Asignarle el shapefile...
   Ly1.GeoDataset:=conexion.FindGeoDataset('Calles_arc.shp');
 

    //Propiedades de la capa...

   Ly1.Symbol.Color:= $00C5BDBD;
    Ly1.Symbol.Style:= moDotLine;
 

   //Mostrar la capa...
  Map1.Layers.Add(Ly1);
 

  end;

Encontre dos objetos:
MapObjects2.LabelPlacer
MapObjects2.LabelRenderer
Pero aun no logro usarlos correctamente !!!

PD: Como se hace Torito !!! :confused:

torito 21-07-2005 16:55:52

jeje, gracias por la pos Data, te recomiendo que si tienes dudas sobre el map objects continues con el hilo donde nos conocimos ya que de ese si me llega aviso y de este por pura casualidad lo vi.. el código te lo adjunto, si tienes alguna duda me avisas, por cierto que bueno que ya estas investigando más a fondo

Código:

procedure TForm2.BBEtiquetaClick(Sender: TObject);
var
aqui : integer;
oleFt    : variant;
lblren  : IMoLabelRenderer;
begin
if (cbvisible2.Checked) and (cbdato.Text<>'') then
 begin
 oleft := FontToOleFont(fuentes.Font);
 lblren :=IMoLabelRenderer(CreateOleObject('MapObjects2.LabelRenderer'));
 LblRen.DrawBackground := True;
 LblRen.Field := 'Nom';
 LblRen.SplinedText := True;
 LblRen.AllowDuplicates := False;
 LblRen.MaxLevel := 10;
 LblRen.MinLevel := 10;

 LblRen.Symbol[0].Font := IFontDisp(IDispatch(oleFt));
 //lblren.AllowDuplicates :=true;
 lblren.field :=cbdato.Text;
 l.renderer := lblren;
 //form1.Map1.Refresh;
 end else //fin if principal
 l.renderer :=nil;
form1.Map1.Refresh;

saludos

TriLoCBA 22-07-2005 00:31:43

Torito,
Desde ya muchas gracias por el ejemplo...

Estuve haciendo unas pruebas con ambos objetos (LabelPlacer y LabelRenderer),usando los ejemplos de Visual Basic que trae la ayuda del MapObjects 2.3, y luego convirtiendolos a Delphi.

Aun no tengo claro, debido a que ambos objetos cuentan con propiedades muy parecidas, cual es la funcion o virtud especifica de cada uno.

Ya logre parte de lo que queria, pero seguire investigando !!! :cool:

PD: Abri este hilo debido a que Herramientas Cartograficas se ha hecho muy largo y algo complicado de seguir; pero sobre todo porque comparto 100% contigo, la idea de que los temas GIS & Delphi, merecen mucho mas que un solo hilo, incluso un foro propio dentro deClubDelphi ;)...

torito 22-07-2005 01:11:35

nunca eh trabajado con el labelplacer, en donde viene el ejemplo??

TriLoCBA 25-07-2005 00:21:29

LabelPlacer...
 
Los ejemplos que estoy probando los copie del MapObjects 2.3 Help (MapObjects2.hlp), que se instala con el MO23Eval_Only.exe (descargado de la pagina de ESRI).

Todos los ejemplos de la ayuda estan en Visual Basic, pero son relativamente faciles de convertir a Delphi.

Hay otro archivo: MO23Samples.exe que instala ejemplos concretos en varios lenguajes.

torito 25-07-2005 15:19:29

ok, la verdad aun no empiezo con el mo23, ya que aún no me llega la actualización, tan pronto llegue me mudo a esa versión y te comento

TriLoCBA 03-08-2005 00:32:54

Mejorar la letra de Labels !!!
 
Cual es la propiedad MapObjects, que permite ponerle borde a las letras de los labels ???

En ArcMap (8.1), al texto del label puede definirsele un "Halo", para que resalten mas las letras sobre el mapa. Pero no encuentro la propiedad en los objetos del MapObjects...:confused:


La franja horaria es GMT +2. Ahora son las 08:57:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi