コード例 #1
0
    def radius(self, code, subs=None, city=None, default=REGION_RADIUS):
        """
        Return the best radius guess for the given region code.

        :param code: A two-letter region code.
        :type code: str

        :param subs: A list of ISO subdivision codes.
        :type code: list

        :param city: A geoname_id from a city record or None.
        :type city: int

        :returns: A tuple of radius/region radius guesses in meters.
        :rtype: tuple
        """
        region_radius = GEOCODER.region_max_radius(code)
        if region_radius is None:
            # No region code or no successful radius lookup
            region_radius = default

        # Use region radius as an upper bound for city / subdivision
        # radius for really small regions. E.g. Vatican City cannot
        # be larger than the Vatican as a region.
        radius = region_radius

        if subs:
            radius = min(SUB_RADII.get(code, SUB_RADIUS), radius)

        if city:
            radius = min(CITY_RADII.get(city, CITY_RADIUS), radius)

        return (radius, region_radius)
コード例 #2
0
ファイル: geoip.py プロジェクト: cemoulto/ichnaea
    def radius(self, code, subs=None, city=None, default=REGION_RADIUS):
        """
        Return the best radius guess for the given region code.

        :param code: A two-letter region code.
        :type code: str

        :param subs: A list of ISO subdivision codes.
        :type code: list

        :param city: A geoname_id from a city record or None.
        :type city: int

        :returns: A tuple of radius/region radius guesses in meters.
        :rtype: tuple
        """
        region_radius = GEOCODER.region_max_radius(code)
        if region_radius is None:
            # No region code or no successful radius lookup
            region_radius = default

        # Use region radius as an upper bound for city / subdivision
        # radius for really small regions. E.g. Vatican City cannot
        # be larger than the Vatican as a region.
        radius = region_radius

        if subs:
            radius = min(SUB_RADII.get(code, SUB_RADIUS), radius)

        if city:
            radius = min(CITY_RADII.get(city, CITY_RADIUS), radius)

        return (radius, region_radius)
コード例 #3
0
ファイル: base.py プロジェクト: ingle/ichnaea
        'ratelimit_expire': '60',
        'ratelimit_interval': '5',
        'cache_expire': '60',
    },
})

GEOIP_DATA = {
    'London': {
        'city': True,
        'region_code': 'GB',
        'region_name': 'United Kingdom',
        'ip': '81.2.69.192',
        'latitude': 51.5142,
        'longitude': -0.0931,
        'radius': CITY_RADII[2643743],
        'region_radius': GEOCODER.region_max_radius('GB'),
        'score': 0.8,
    },
    'Bhutan': {
        'city': False,
        'region_code': 'BT',
        'region_name': 'Bhutan',
        'ip': '67.43.156.1',
        'latitude': 27.5,
        'longitude': 90.5,
        'radius': GEOCODER.region_max_radius('BT'),
        'region_radius': GEOCODER.region_max_radius('BT'),
        'score': 0.9,
    },
}
コード例 #4
0
ファイル: test_geocode.py プロジェクト: amolk4games/ichnaea
 def test_max_radius_fail(self):
     for invalid in (None, 42, 'A', 'us', 'USA', 'AA'):
         self.assertTrue(GEOCODER.region_max_radius(invalid) is None)
コード例 #5
0
ファイル: test_geocode.py プロジェクト: amolk4games/ichnaea
 def test_max_radius(self):
     self.assertEqual(GEOCODER.region_max_radius('US'), 2971000.0)
     self.assertEqual(GEOCODER.region_max_radius('LI'), 14000.0)
     self.assertEqual(GEOCODER.region_max_radius('VA'), 1000.0)
コード例 #6
0
ファイル: base.py プロジェクト: mate1983/ichnaea
        'ratelimit_expire': '60',
        'ratelimit_interval': '5',
        'cache_expire': '60',
    },
})

GEOIP_DATA = {
    'London': {
        'city': True,
        'region_code': 'GB',
        'region_name': 'United Kingdom',
        'ip': '81.2.69.192',
        'latitude': 51.5142,
        'longitude': -0.0931,
        'radius': CITY_RADII[2643743],
        'region_radius': GEOCODER.region_max_radius('GB'),
        'score': 0.8,
    },
    'Bhutan': {
        'city': False,
        'region_code': 'BT',
        'region_name': 'Bhutan',
        'ip': '67.43.156.1',
        'latitude': 27.5,
        'longitude': 90.5,
        'radius': GEOCODER.region_max_radius('BT'),
        'region_radius': GEOCODER.region_max_radius('BT'),
        'score': 0.9,
    },
}
コード例 #7
0
ファイル: conftest.py プロジェクト: gaybro8777/ichnaea
GB_LAT = 51.5
GB_LON = -0.1
GB_MCC = 234
GB_MNC = 30

GEOIP_DATA = {
    "London": {
        "city": True,
        "region_code": "GB",
        "region_name": "United Kingdom",
        "ip": "81.2.69.192",
        "latitude": 51.5142,
        "longitude": -0.0931,
        "radius": CITY_RADII[2643743],
        "region_radius": GEOCODER.region_max_radius("GB"),
        "score": 0.8,
    },
    "London2": {
        "city": True,
        "region_code": "GB",
        "region_name": "United Kingdom",
        "ip": "81.2.69.144",
        "latitude": 51.5142,
        "longitude": -0.0931,
        "radius": 3000.0,
        "region_radius": GEOCODER.region_max_radius("GB"),
        "score": 0.8,
    },
    "Bhutan": {
        "city": False,
コード例 #8
0
 def test_max_radius_fail(self):
     for invalid in (None, 42, "A", "us", "USA", "AA"):
         assert GEOCODER.region_max_radius(invalid) is None
コード例 #9
0
 def test_max_radius(self):
     assert GEOCODER.region_max_radius("US") == 2971000.0
     assert GEOCODER.region_max_radius("LI") == 14000.0
     assert GEOCODER.region_max_radius("VA") == 1000.0
 def test_max_radius(self):
     assert GEOCODER.region_max_radius('US') == 2971000.0
     assert GEOCODER.region_max_radius('LI') == 14000.0
     assert GEOCODER.region_max_radius('VA') == 1000.0