示例#1
0
文件: point.py 项目: encukou/upoints
def _dms_formatter(latitude, longitude, mode, unistr=False):
    """Generate a human readable DM/DMS location string.

    :param float latitude: Location's latitude
    :param float longitude: Location's longitude
    :param str mode: Coordinate formatting system to use
    :param bool unistr: Whether to use extended character set
    """
    if unistr:
        chars = ('°', '′', '″')
    else:
        chars = ('°', "'", '"')

    latitude_dms = tuple(map(abs, utils.to_dms(latitude, mode)))
    longitude_dms = tuple(map(abs, utils.to_dms(longitude, mode)))
    text = []
    if mode == 'dms':
        text.append('%%02i%s%%02i%s%%02i%s' % chars % latitude_dms)
    else:
        text.append('%%02i%s%%05.2f%s' % chars[:2] % latitude_dms)
    text.append('S' if latitude < 0 else 'N')
    if mode == 'dms':
        text.append(', %%03i%s%%02i%s%%02i%s' % chars % longitude_dms)
    else:
        text.append(', %%03i%s%%05.2f%s' % chars[:2] % longitude_dms)
    text.append('W' if longitude < 0 else 'E')
    return text
示例#2
0
文件: nmea.py 项目: encukou/upoints
def nmea_longitude(longitude):
    """Generate a NMEA-formatted longitude pair.

    :param float longitude: Longitude to convert
    :rtype: ``tuple``
    :return: NMEA-formatted longitude values
    """
    return ('%03i%07.4f' % utils.to_dms(abs(longitude), 'dm'),
            'E' if longitude >= 0 else 'W')
示例#3
0
文件: nmea.py 项目: encukou/upoints
def nmea_latitude(latitude):
    """Generate a NMEA-formatted latitude pair.

    :param float latitude: Latitude to convert
    :rtype: ``tuple``
    :return: NMEA-formatted latitude values
    """
    return ('%02i%07.4f' % utils.to_dms(abs(latitude), 'dm'),
            'N' if latitude >= 0 else 'S')
示例#4
0
def test_to_dms_error():
    with raises(ValueError, message='Unknown style type None'):
        to_dms(-0.221, style=None)
示例#5
0
def test_to_dms_style():
    assert to_dms(-0.221, style='dm') == (0, -13.26)
示例#6
0
def test_to_dms(angle, result):
    assert to_dms(angle) == result
示例#7
0
def test_to_dms():
    expect(to_dms(52.015)) == (52, 0, 54.0)
    expect(to_dms(-0.221)) == (0, -13, -15.600000000000023)
    expect(to_dms(-0.221, style='dm')) == (0, -13.26)
    with expect.raises(ValueError, 'Unknown style type None'):
        to_dms(-0.221, style=None)