Exemplo n.º 1
0
    def test_pretty_print(self):
        DAMS.init_dams()

        address = "東京都"
        returned = DAMS.geocode(address)
        with suppress_stdout():
            pretty_print(returned)

        address = "東京都千代田区富士見3-1-11"
        returned = DAMS.geocode_simplify(address)
        with suppress_stdout():
            pretty_print(returned)

        self.assertTrue(True)
Exemplo n.º 2
0
    def test_geocode_simplify_level_5(self):
        DAMS.init_dams()

        address = "東京都千代田区富士見3-1-11"
        returned = DAMS.geocode_simplify(address)

        expected = {
            "score":
            5,
            "candidates": [{
                "name": "東京都千代田区富士見",
                "x": 139.746558,
                "y": 35.698418,
                "level": 5
            }]
        }
        self._assert_geocoded_object(returned, expected, distance_eps=200)
Exemplo n.º 3
0
    def test_geocode_town_with_chinese_numerals(self):
        DAMS.init_dams()

        address = "福島県大沼郡金山町越川五十苅象"
        returned = DAMS.geocode_simplify(address)

        expected = {
            'score':
            5,
            'tail':
            '象',
            'candidates': [{
                'level': 6,
                'x': 139.4859161376953,
                'y': 37.43180847167969,
                'name': '福島県大沼郡金山町越川五十苅'
            }]
        }

        self._assert_geocoded_object(returned, expected, distance_eps=200)
Exemplo n.º 4
0
def geocode_with_pydams(normalized_address: str):
    """
    PyDAMSを利用したジオコーディング
    """
    # @see http://newspat.csis.u-tokyo.ac.jp/geocode/modules/dams/index.php?content_id=4
    geocoded = DAMS.geocode_simplify(normalized_address)
    if not geocoded:
        raise GeocodeError("ジオコーディングの結果がありせんでした。(内部エラー)")

    lat = round(geocoded["candidates"][0]["y"], 6)  # 国土地理院地図に合わせて6桁とした
    lng = round(geocoded["candidates"][0]["x"], 6)

    if lat == 0 and lng == 0:
        raise GeocodeError("ジオコーディング結果がlat=0, lng=0(Null島)を示しています。")

    score = geocoded["score"]  # 1〜5
    name = geocoded["candidates"][0]["name"]  # ジオコーディングに寄与する住所
    tail = geocoded["tail"]  # ジオコーディングに寄与してない住所

    return (lat, lng, (score, name, tail))