ThinkGeo.com    |     Documentation    |     Premium Support

Problem in Displaying Multiple images

 


Hi 
I am trying to display multiple png from the database. That showing nothing with no error. I think I m missing some thing here.
 
For i = 0 To dt.Rows.Count - 1
Dim UnitPointStyle As New PointStyle(New GeoImage("..\..\Images\primary_symbols\" & dt.Rows(i).Item("Symbolname")))
Dim Coordinates As New Feature(New PointShape(dt.Rows(i).Item("Longitude"), dt.Rows(i).Item("Latitude")))
 
pointLayer.FeatureSource.Projection = proj
pointLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle.PointType = PointType.Bitmap
ValueStyle.ValueItems.Add(New ValueItem("Units", UnitPointStyle))
pointLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(ValueStyle)
pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
pointLayer.InternalFeatures.Add(Coordinates)
 
Next
 
Dim UnitOverlay As New LayerOverlay()
UnitOverlay.Layers.Add("UnitOverlay", pointLayer)
winformsMap1.Overlays.Add(UnitOverlay)
 
Regards,
Zeeshan

ZEESHAN,


Thanks for your post and questions.
 
First I did not see you set the correct map unit for the map control, can you make sure that has been done? Also, are you setting the correct boundingbox for the map control?
 
Also I reviewed the logic in the for each loop and found that something is confusing, I get some changes for reference, hope it helps:
 

pointLayer.FeatureSource.Projection = proj
pointLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle.PointType = PointType.Bitmap
For i = 0 To dt.Rows.Count - 1
Dim UnitPointStyle AsNew PointStyle(New GeoImage("..\..\Images\primary_symbols\" & dt.Rows(i).Item("Symbolname")))
Dim Coordinates AsNew Feature(New PointShape(dt.Rows(i).Item("Longitude"), dt.Rows(i).Item("Latitude")))
ValueStyle.ValueItems.Add(New ValueItem("Units", UnitPointStyle))
pointLayer.InternalFeatures.Add(Coordinates)
Next
 
pointLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(ValueStyle)
pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20

 
Any more questions or concerns please feel free to let me know.
 
Thanks.
 
Yale

 


Hi Yale !


The projection that I m using 


proj.InternalProjectionParameters = ManagedProj4Projection.GetEpsgParameters(4326)  'WGS84


proj.ExternalProjectionParameters = ManagedProj4Projection.GetEpsgParameters(32638) 'UTM zone 38N


This works fine when I display single icon using following code


Dim inMemoryFeatureLayer As New InMemoryFeatureLayer()


inMemoryFeatureLayer.FeatureSource.Projection = proj


inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle.PointType = PointType.Bitmap


inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle.Image = New GeoImage("..\..\Images\sedan.png")


inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle.RotationAngle = 360


inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20


inMemoryFeatureLayer.InternalFeatures.Add("Car", New Feature(New PointShape(47.3677, 29.3901)))


 


Dim car_overlay As New LayerOverlay()


car_overlay.Layers.Add("CarOverlay", inMemoryFeatureLayer)


winformsMap1.Overlays.Add(car_overlay)


After I made change to display multiple icons as u suggested still showing nothing


Dim dt As New DataTable


Dim i As Integer


Dim valueStyle As New ValueStyle


Dim pointLayer As New InMemoryFeatureLayer()


 


ValueStyle.ColumnName = "Type"


dt = getTable("select * from Units", "")


 


pointLayer.FeatureSource.Projection = proj


pointLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle.PointType = PointType.Bitmap


 


For i = 0 To dt.Rows.Count - 1


 


Dim UnitPointStyle As New PointStyle(New GeoImage("..\..\Images\primary_symbols\" & dt.Rows(i).Item("Symbol_name")))


Dim Coordinates As New Feature(New PointShape(dt.Rows(i).Item("Longitude"), dt.Rows(i).Item("Latitude")))


valueStyle.ValueItems.Add(New ValueItem("Units", UnitPointStyle))


pointLayer.InternalFeatures.Add(Coordinates)


Next


 


pointLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(valueStyle)


pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20


 


Dim UnitOverlay As New LayerOverlay()


UnitOverlay.Layers.Add("UnitOverlay", pointLayer)


winformsMap1.Overlays.Add(UnitOverlay)


Regards,


Zeeshan



Waiting for reply

2 days ago no reply yet. i am desperately waiting for the solution.


 


Regards,


Zeeshan



Zeeshan, 
  
 Thanks for your post and sorry for the delay. 
  
 I reviewed the code you provided, and I think the problem is probably because you did not assign a corresponding value for the feature before adding them into inMemoryFeatureLayer, which will cause no valid ValueItem can be found.  So please change this according to your logic, which will answering the questions why choosing ValueStyle. 
  
 Any more questions or concerns please feel free to let me know. 
  
 Thanks. 
  
 Yale 


Hi Yale!


I was missing to declare column in memory layer.New FeatureSourceColumn("Type", "string", 20))

Thats why i was unable to see any image. Plus as u suggested to assign valuestyle value to feature b4 adding in memoryfeaturelayer.Thanks its done



pointLayer.Columns.Add(



ZEESHAN, 
  
 Thanks for letting me know your status. 
  
 Any more questions or concerns please feel free to let me know. 
  
 Thanks. 
  
 Yale