Hi,
I have downloaded latest "Map Suite Geocode USA Full Edition 2.1" and using the application downloaed with this Edition i was trying to get Latituide and longitude for a given address.
Here is My code:
private GeoCodeEngine geoEngine;
private GeoCodeUSASettings geoCodeUSASettings = GeoCodeDesktopCSSample.CSApplication.GetSettingsFromXML();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
geoEngine = new GeoCodeEngine(@"C:\Program Files\ThinkGeo\Map Suite Geocode USA Full Edition 2.1\GeoCodeIndex", false);
GeoCodeResult geoCodeResult =new GeoCodeResult();
geoCodeResult = geoEngine.AdvancedGeoCode("1617 St. Andrews Dr.", "Lawrence", "KS", "66047", ref geoCodeUSASettings);
DisplayResults(ref geoCodeResult);
Map1.MapUnit = GeographyUnit.DecimalDegree;
PointShape Pp = new PointShape();
Pp.X = Convert.ToDouble(geoCodeResult.Latitude);
Pp.Y = Convert.ToDouble(geoCodeResult.Longitude);
Map1.MarkerOverlay.Features.Clear();
Map1.MarkerOverlay.Features.Add("marker", new Feature(Pp));
Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#B3C6D4"));
Map1.CurrentExtent = new RectangleShape(-131.22, 55.05, -54.03, 16.91);
Map1.MapUnit = GeographyUnit.DecimalDegree;
//Map1.CurrentExtent = new RectangleShape(-97.7458275477605, 30.2976947428081, -97.728208518133, 30.2851233270739);
Map1.CurrentExtent = new RectangleShape(-13939426.6371, 6701997.4056, -7812401.86, 2626987.386962);
ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"C:\Program Files\ThinkGeo\Map Suite Web Evaluation Edition 3.0\Samples\VB Samples\SampleData\World\cntry02.shp");
worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 243, 239, 228), GeoColor.FromArgb(255, 218, 193, 163), 1);
worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
ShapeFileFeatureLayer citiesLayer = new ShapeFileFeatureLayer(@"C:\Program Files\ThinkGeo\Map Suite Web Evaluation Edition 3.0\Samples\VB Samples\SampleData\USA\cities_a.shp");
citiesLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.City3;
citiesLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
citiesLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = new TextStyle("AREANAME", new GeoFont("Verdana", 9), new GeoSolidBrush(GeoColor.StandardColors.Black));
citiesLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.HaloPen = new GeoPen(GeoColor.StandardColors.White, 2);
citiesLayer.DrawingMarginPercentage = 50;
ShapeFileFeatureLayer streetLayer = new ShapeFileFeatureLayer(@"C:\Program Files\ThinkGeo\Map Suite Web Evaluation Edition 3.0\Samples\VB Samples\SampleData\USA\Austin\austinstreets.shp");
streetLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.LocalRoad2;
streetLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
streetLayer.DrawingMarginPercentage = 80;
LayerOverlay layerOverlay = new LayerOverlay("ThinkGeoMap");
Map1.StaticOverlay.Layers.Add("WorldLayer", worldLayer);
Map1.StaticOverlay.Layers.Add("CitiesLayer", citiesLayer);
Map1.StaticOverlay.Layers.Add("Austin", streetLayer);
Map1.MarkerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
}
}
At line geoCodeResult = geoEngine.AdvancedGeoCode("1617 St. Andrews Dr.", "Lawrence", "KS", "66047", ref geoCodeUSASettings);
it is giving the following error
The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderReplacementFallback'. Parameter name: chars
I have used the same CSApplication.cs file as used in Downloaded application to set setting for GeoCodeUSASettings
Please help on this problem and please review my code if i m following thre right way to get Address on map via getting latitude and longitude for a given address
Thanks for your immediate reply
Anil Dutt