ThinkGeo.com    |     Documentation    |     Premium Support

WebImage offset

 


Marker positions are spot on in the highest zoom level but is way off as you zoom out. I have attached pics of this.


This is the code adding the marker:


 




Proj4Projection proj4 = new Proj4Projection();
            proj4.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326);
            proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString();
            proj4.Open();

            string assetIcon = string.Empty;
            SimpleMarkerOverlay markerOverlay = (SimpleMarkerOverlay)Map1.CustomOverlays["MarkerOverlay"];
            foreach (EventReport eventReport in latestDeviceEvents)
            {
                assetIcon = GetAssetIcon(eventReport);

                double lat = Utilities.Conversion.MSecToDegrees(eventReport.Latitude);
                double lng = Utilities.Conversion.MSecToDegrees(eventReport.Longitude);
                PointShape position = new PointShape(lng, lat);
                PointShape projectedPosition = proj4.ConvertToExternalProjection(position) as PointShape;

                WebImage webImage = new WebImage(assetIcon, 44, 44, 22, 22);
                webImage.Text = eventReport.AssetName;
                //webImage.TextOffsetX = 22.0f;
                //webImage.TextOffsetY = -50.0f;
                webImage.TextBackgroundColor = GeoColor.StandardColors.White;

                Marker projectedMarker = new Marker(projectedPosition, webImage);
                projectedMarker.Id = eventReport.AssetId.ToString() ;

                markerOverlay.Markers.Add(projectedMarker);
            }
            proj4.Close();


As you can see the markers are getting further and further away from the original location at the highest zoomlevel




 




 


And one bug that I found is if I add a webImage.TextOffsetY value the webImage disappears.


 




Allan, 
  
 Thanks for your detail informations that make us easy to reproduce your problem, but we don’t find any solution for it so far. 
  
 I will let you know if we have any good news for this problem, please keep an eye on this post. 
  
 Thanks, 
 James

Allan,


We have done many research on this issue, eventually we find the really problem is that the value of offset is wrong, you should use following code:


WebImage webImage = new WebImage(assetIcon, 44, 44, -22f, -22f);

 


Feel free to let me know if you have more questions.


Thanks,


James



 


 


Hi James,


I just figured that out as well. But having corrected that I still found an error popping up when using a custom icon image (MarkerIconPath)


Marker projectedMarker = new Marker(projectedPosition, new WebImage(MarkerIconPath, 44, 44, 22f, 22f)

The error is Sys.ArgumentException: Cannot deserialize. It will work if the no custom image is used. (using WebEdition 4.5.78.0)




I have listed this with other issues in the thread:


gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/8594/afv/topic/Default.aspx


 



Allan, 
  
 Thanks for your mention that, I will close this post and reply your questions at 8594 thread. 
  
 James