Community of VE/MapPoint Users and Developers
This is a discussion on Lat Lon problem URGENT HELP within the MapPoint 2006/2009 Discussion forums, part of the Map Forums category; Hi, I'm using in VB program the following function to get Lat and Lon, but if I execute it more ...
| |||||||
| Register | Blogs | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| |||
| Lat Lon problem URGENT HELP I'm using in VB program the following function to get Lat and Lon, but if I execute it more than once I retrieve the error "Method Distance of object _Map failed. I retrieve the error in this line dblLat = 90 - 180 * objMap.Distance(locNorthPole, locX) / dblHalfEarth Sub CalcPos(objMap As MapPoint.Map, locX As MapPoint.Location, dblLat As Double, dblLon As Double) Static locNorthPole As MapPoint.Location Static locSantaCruz As MapPoint.Location ' Center of western hemisphere Static dblHalfEarth As Double ' Half circumference of the earth (as a sphere) Static dblQuarterEarth As Double ' Quarter circumference of the earth (as a sphere) Static Pi As Double ' Check if initialization already done If locNorthPole Is Nothing Then Set locNorthPole = objMap.GetLocation(90, 0) Set locSantaCruz = objMap.GetLocation(0, -90) ' Compute distance between north and south poles == half earth circumference dblHalfEarth = objMap.Distance(locNorthPole, objMap.GetLocation(-90, 0)) ' Quarter of that is the max distance a point may be away from locSantaCruz and still be in western hemisphere dblQuarterEarth = dblHalfEarth / 2 Pi = 3.14159265358979 End If ' Compute latitude from distance to north pole dblLat = 90 - 180 * objMap.Distance(locNorthPole, locX) / dblHalfEarth Dim l As Double Dim d As Double ' Compute great circle distance to locX from point on Greenwich meridian and computed Latitude d = objMap.Distance(objMap.GetLocation(dblLat, 0), locX) ' convert latitude to radian l = (dblLat / 180) * Pi ' Compute Longitude from great circle distance dblLon = 180 * Arccos((Cos((d * 2 * Pi) / (2 * dblHalfEarth)) - Sin(l) * Sin(l)) / (Cos(l) * Cos(l))) / Pi ' Correct longitude sign if located in western hemisphere If objMap.Distance(locSantaCruz, locX) < dblQuarterEarth Then dblLon = -dblLon Lat = dblLat Lon = dblLon End Sub
__________________ Thanks |
| |||
|
Hi, This code is ok if you have nothing changed on it. It is widely used in VB and other languages. You should check what is wrong with objMap. When you start to debug first thing to try is other method calls on it. they probably will fail also. Then you have to check out what is changed between the 2 function calls. Also check in debugger if all varialbles are still valid.
__________________ rgds, Wilfried Mestdagh www.mestdagh.biz MapPoint coding demo Order MapPoint 2009 with Routing and User Tools Spreadsheet |
![]() |
| Tags |
| lat, lon, problem, urgent |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
| |
| ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Link Data Wizard Problem (URGENT HELP!!!) | craig_korn | MapPoint 2006/2009 Discussion | 1 | 05-19-2005 03:03 PM |
| Matching records problem - URGENT HELP | Abilio Serafim | MapPoint 2006/2009 Discussion | 0 | 05-09-2005 12:23 PM |
| Need help URGENT | amitsh | MapPoint 2006/2009 Discussion | 2 | 03-09-2004 05:38 PM |
| ZIP Codes Austria-URGENT | Anonymous | MapPoint 2006/2009 Discussion | 2 | 01-04-2004 02:52 PM |
| layer problem [urgent] | Joeba | MapPoint 2006/2009 Discussion | 3 | 10-16-2003 10:11 AM |