УЖЕ СПРАШИВАЛ И KFF ПРЕДЛОЖИЛ ПОЛУЧИТЬ ПИКСЕЛЬНЫЕ КООРДИНАТЫ
ФУНКЦИЕЙ axcMapScreen1.ConvertMetric( ref X, ref Y, axGisToolKit.TxPPLACE.PP_GEOWGS84, axGisToolKit.TxPPLACE.PP_PICTURE )
=> ПОПРОБЫВАЛ И ПОЛУЧИЛ ТАКОЙ ЖЕ РЕЗУЛЬТАТ, КАК И РАНЕЕ У СЕБЯ В ПРОГРАММЕ ЧЕРЕЗ ФУНКЦИИ ...,...,mapPlaneToPicture
ПОЛОЖЕНИЕ МЫШИ (КООРДИНАТЫ..ГРАДУСЫ, МЕТРЫ) В СВОЕЙ ПРОГРАММЕ ПОКАЗЫВАЮ ПРАВИЛЬНО =>
(БЕРУ ОТ СВОЙСТВ МЫШИ axcMapScreen1_OnMapMouseMove )
if ( ConvertCoordinates.mapIsGeoSupported(axaxcMapScreen1.MapHandle) != 0 )
{
ConvertCoordinates.mapPlaneToGeoWGS84( axaxcMapScreen1.MapHandle, ref xx, ref yy);
double gradX = (180 / Math.PI) * xx;
double drX1 = (int)gradX;
double drX = gradX - (int)gradX;
double minX = drX * 60;
double secX = (minX - (int)minX) * 60;
double gradY = (180 / Math.PI) * yy;
double drY1 = (int)gradY;
double drY = gradY - (int)gradY;
double minY = drY * 60;
double secY = ( minY - (int)minY ) * 60;
LatLabel.Text = "Широта = " + drX1.ToString("000") + "° " + minX.ToString("00") + "' " + Math.Round(secX, 2).ToString("00") + '"';
LonLabel.Text = "Долгота = " + drY1.ToString("000") + "° " + minY.ToString("00") + "' " + Math.Round(secY, 2).ToString("00") + '"';
} < = ТУТ ПОХОЖЕ ВСЁ OK
################# => А ВОТ PNG КАРТИНКА ПО ВЫЧИСЛЕННЫМ ПИКСЕЛЬНЫМ КООРДИНАТАМ УБЕГАЕТ ВПРАВО ПО ДОЛГОТЕ,
НА НЕПОНЯТНУЮ МИЛЮ (НЕ СУХОПУТНАЯ, НЕ МОРСКАЯ) НА ~ 1627 ~ 1632 ~1616 (В ЗАВИСИМОСТИ ОТ МАСШТАБА КАРТЫ)
ЭТО ГЛЮК GIS ToolKit? ЕЁ ЧТО НАДО ВСЕГДА ВЫЧИТАТЬ ПРИ ВЫЧИСЛЕНИЯХ ?
КТО-НИБУДЬ РИСОВАЛ ПО ЗАДАННЫМ КООРДИНАТАМ ?
ТУТ КУСКИ C# ИСХОДНИКА => ЕСТЕСТВЕННО НЕ ВЕСЬ КОД И КООРДИНАТЫ ВОЗЬМИТЕ ЛЮБЫЕ
Bitmap ico_place;
Rectangle CrossRect;
ico_place = new Bitmap(@"C:\MAPS_OBJECT\BMP\MALKARTINKA.png");
double X_PRIMORSK = 3.1415926535897932384626433832795 * 60.538333333333334 / 180.0;
double Y_PRIMORSK = 3.1415926535897932384626433832795 * 28.64527777777778 / 180.0;
axaxcMapScreen1.ConvertMetric( ref X_PRIMORSK, ref Y_PRIMORSK, axGisToolKit.TxPPLACE.PP_GEOWGS84, axGisToolKit.TxPPLACE.PP_PICTURE );
int SIZE_PNG = ( axcMapScreen1.ViewScale <= 7812) ? 36: 18; /* ДЛЯ ИЗМЕНЕНИЯ РАЗМЕРА PNG */
CrossRect = Rectangle.FromLTRB( intX_PRIMORSK - SIZE_PNG, intY_PRIMORSK - SIZE_PNG, intX_PRIMORSK + SIZE_PNG, intY_PRIMORSK + SIZE_PNG);
Graphics graph = Graphics.FromHwnd(axaxcMapScreen1.Handle);
graph.DrawImage( ico_place, CrossRect );
graph.Dispose();
=> РАЗРАБОТЧИКИ ГИС ОТЗОВИТЕСЬ
ФУНКЦИЕЙ axcMapScreen1.ConvertMetric( ref X, ref Y, axGisToolKit.TxPPLACE.PP_GEOWGS84, axGisToolKit.TxPPLACE.PP_PICTURE )
=> ПОПРОБЫВАЛ И ПОЛУЧИЛ ТАКОЙ ЖЕ РЕЗУЛЬТАТ, КАК И РАНЕЕ У СЕБЯ В ПРОГРАММЕ ЧЕРЕЗ ФУНКЦИИ ...,...,mapPlaneToPicture
ПОЛОЖЕНИЕ МЫШИ (КООРДИНАТЫ..ГРАДУСЫ, МЕТРЫ) В СВОЕЙ ПРОГРАММЕ ПОКАЗЫВАЮ ПРАВИЛЬНО =>
(БЕРУ ОТ СВОЙСТВ МЫШИ axcMapScreen1_OnMapMouseMove )
if ( ConvertCoordinates.mapIsGeoSupported(axaxcMapScreen1.MapHandle) != 0 )
{
ConvertCoordinates.mapPlaneToGeoWGS84( axaxcMapScreen1.MapHandle, ref xx, ref yy);
double gradX = (180 / Math.PI) * xx;
double drX1 = (int)gradX;
double drX = gradX - (int)gradX;
double minX = drX * 60;
double secX = (minX - (int)minX) * 60;
double gradY = (180 / Math.PI) * yy;
double drY1 = (int)gradY;
double drY = gradY - (int)gradY;
double minY = drY * 60;
double secY = ( minY - (int)minY ) * 60;
LatLabel.Text = "Широта = " + drX1.ToString("000") + "° " + minX.ToString("00") + "' " + Math.Round(secX, 2).ToString("00") + '"';
LonLabel.Text = "Долгота = " + drY1.ToString("000") + "° " + minY.ToString("00") + "' " + Math.Round(secY, 2).ToString("00") + '"';
} < = ТУТ ПОХОЖЕ ВСЁ OK
################# => А ВОТ PNG КАРТИНКА ПО ВЫЧИСЛЕННЫМ ПИКСЕЛЬНЫМ КООРДИНАТАМ УБЕГАЕТ ВПРАВО ПО ДОЛГОТЕ,
НА НЕПОНЯТНУЮ МИЛЮ (НЕ СУХОПУТНАЯ, НЕ МОРСКАЯ) НА ~ 1627 ~ 1632 ~1616 (В ЗАВИСИМОСТИ ОТ МАСШТАБА КАРТЫ)
ЭТО ГЛЮК GIS ToolKit? ЕЁ ЧТО НАДО ВСЕГДА ВЫЧИТАТЬ ПРИ ВЫЧИСЛЕНИЯХ ?
КТО-НИБУДЬ РИСОВАЛ ПО ЗАДАННЫМ КООРДИНАТАМ ?
ТУТ КУСКИ C# ИСХОДНИКА => ЕСТЕСТВЕННО НЕ ВЕСЬ КОД И КООРДИНАТЫ ВОЗЬМИТЕ ЛЮБЫЕ
Bitmap ico_place;
Rectangle CrossRect;
ico_place = new Bitmap(@"C:\MAPS_OBJECT\BMP\MALKARTINKA.png");
double X_PRIMORSK = 3.1415926535897932384626433832795 * 60.538333333333334 / 180.0;
double Y_PRIMORSK = 3.1415926535897932384626433832795 * 28.64527777777778 / 180.0;
axaxcMapScreen1.ConvertMetric( ref X_PRIMORSK, ref Y_PRIMORSK, axGisToolKit.TxPPLACE.PP_GEOWGS84, axGisToolKit.TxPPLACE.PP_PICTURE );
int SIZE_PNG = ( axcMapScreen1.ViewScale <= 7812) ? 36: 18; /* ДЛЯ ИЗМЕНЕНИЯ РАЗМЕРА PNG */
CrossRect = Rectangle.FromLTRB( intX_PRIMORSK - SIZE_PNG, intY_PRIMORSK - SIZE_PNG, intX_PRIMORSK + SIZE_PNG, intY_PRIMORSK + SIZE_PNG);
Graphics graph = Graphics.FromHwnd(axaxcMapScreen1.Handle);
graph.DrawImage( ico_place, CrossRect );
graph.Dispose();
=> РАЗРАБОТЧИКИ ГИС ОТЗОВИТЕСЬ