void ObjSearchDialogImpl::OnShowOnChart( wxCommandEvent& event ) { long itemIndex = -1; itemIndex = m_listCtrlResults->GetNextItem(itemIndex, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if (itemIndex == -1) return; wxListItem row_info; wxString cell_contents_string; row_info.m_itemId = itemIndex; row_info.m_col = 2; row_info.m_mask = wxLIST_MASK_TEXT; m_listCtrlResults->GetItem( row_info ); double lat = fromDMM(row_info.m_text); row_info.m_col = 3; m_listCtrlResults->GetItem( row_info ); double lon = fromDMM(row_info.m_text); row_info.m_col = 5; m_listCtrlResults->GetItem( row_info ); double scale; row_info.m_text.ToDouble(&scale); if (scale < 0.001) scale = 0.001; event.Skip(); JumpToPosition(lat, lon, scale); if (m_cAutoClose->GetValue()) Hide(); }
PositionParser::PositionParser(const wxString & src) { parsedOk = false; if( FindSeparator( src ) ) { latitude = fromDMM( latitudeString ); longitude = fromDMM( longitudeString ); if( (latitude != 0.0) && (longitude != 0.0) ) parsedOk = true; } }
void GoToPositionDialog::OnGoToPosOkClick( wxCommandEvent& event ) { double lat, lon; if( m_MarkLatCtl->GetValue().Length() == 0 ) goto noGo; if( m_MarkLonCtl->GetValue().Length() == 0 ) goto noGo; lat = fromDMM( m_MarkLatCtl->GetValue() ); lon = fromDMM( m_MarkLonCtl->GetValue() ); if( lat == 0.0 && lon == 0.0 ) goto noGo; if( lat > 80.0 || lat < -80.0 ) goto noGo; if( lon > 180.0 || lon < -180.0 ) goto noGo; gFrame->JumpToPosition( lat, lon, cc1->GetVPScale() ); Hide(); event.Skip(); return; noGo: wxBell(); event.Skip(); return; }