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)
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)
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)
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))