Googleは、reference
フィールドとid
フィールドを、2014年6月24日の時点で非推奨としてマークし、単一のplace_id
に置き換えました。
これまでに見たのは正確に27文字のplace_id
の長さだけですが、この長さのドキュメントはありますか?これはどこにも文書化されていません。
place_id
の長さを知ることは、最適なデータベースフィールドを選択するために重要であるため、私が知りたいことは明らかです。
Google Places APIドキュメント サイトから:
idフィールドとreferenceフィールドは、2014年6月24日をもって廃止されました。これらは、場所の比較や場所に関する情報の取得に使用できる一意の識別子である新しい場所IDに置き換えられました。 Places APIは現在、すべての応答でplace_idを返し、PlaceDetailsリクエストとPlaceDeleteリクエストでplaceidを受け入れます。 2015年6月24日以降、APIは応答でIDフィールドと参照フィールドを返すのを停止します。しばらくすると、APIはリクエスト内の参照を受け入れなくなります。できるだけ早くIDと参照の代わりに新しい場所IDを使用するようにコードを更新することをお勧めします。
特定の長さに関するドキュメントはありませんが、私が見た最大値は長さ255です。これは、住所488 Srinagarindra Rd。、Suan Luang、Bangkok、10250に対応します。場所IDを確認できます ここ 。
参考までに、場所IDは次のとおりです。
ErwBNDg4IOC4luC4meC4mSDguKjguKPguLXguJnguITguKPguLTguJnguJfguKPguYwg4LmB4LiC4Lin4LiHIOC4quC4p-C4meC4q-C4peC4p-C4hyDguYDguILguJUg4Liq4Lin4LiZ4Lir4Lil4Lin4LiHIOC4geC4o-C4uOC4h-C5gOC4l-C4nuC4oeC4q-C4suC4meC4hOC4oyAxMDI1MCDguJvguKPguLDguYDguJfguKjguYTguJfguKI
Googleはplace_idの内部実装についての説明を提供していませんが、一般的なGeoHash(ElasticSearchが使用するものなど)と非常に似ているようです。 GeoHashesと同様に、place_idの長さは、より具体的な領域を参照する場合に長くなる傾向があります。
最長place_idこれまでに見た長さは78で、大都市の特定の家でした。
APIが長さを文書化していないということは、いつでも自由に変更できることを示しており、固定長に依存することはお勧めしません。APIの使用中にplace_idがはるかに長くなるのを見てきました。
私がこれまでに見た中で最も長いのは15文字です。見つかったら更新します。
FormattedAddress:KAV.76-78、Indofood Tower、Sudirman Plaza、Jl。ジェンド。 Sudirman No.76-78、RT.3/RW.3、Kuningan、Setia Budi、Kecamatan Setiabudi、Kota Jakarta Selatan、Daerah Khusus Ibukota Jakarta 10250、インドネシア
PlaceId:EsIBS0FWLjc2LTc4LCBJbmRvZm9vZCBUb3dlciwgU3VkaXJtYW4gUGxhemEsIEpsLiBKZW5kLiBTdWRpcm1hbiBOby43Ni03OCwgUlQuMy9SVy4zLCBLdW5pbmdhbiwgU2V0aWEgQnVkaSwgS2VjYW1hdGFuIFNldGlhYnVkaSwgS290YSBKYWthcnRhIFNlbGF0YW4sIERhZXJhaCBLaHVzdXMgSWJ1a290YSBKYWthcnRhIDEwMjUwLCBJbmRvbmVzaWEiJRojChYKFAoSCSH20UED9GkuEc707mF-vRHxEglLQVYuNzYtNzg
長さはイベント172文字である可能性があります。
En_QstGD0LvQuNGG0Y8g0IbQstCw0L3QsCDQkNC60ZbQvdGE0ZbRlNCy0LAsIDE1LCDQlNC90ZbQv9GA0L7MgSwg0JTQvdGW0L_RgNC-0L_QtdGC0YDQvtCy0YHRjNC60LAg0L7QsdC70LDRgdGC0YwsINCj0LrRgNCw0ZfQvdCw
APIでは documentation 彼らはplace_idの最大長を教えていないので、googleplace_idの長さを定義するべきではありません。彼らが話している唯一のことはplace_idは長い文字列の形式にすることができます。
Djangoモデルでは、フィールドタイプをTextFieldとして使用しました。
varbinary(1024)
を使用します
可能な最大を知る。長さは、列ストレージのオーバーヘッドを心配するよりも(多くの場合時期尚早に)入力検証にとってさらに重要です。ほとんどのデータベースは、255を超えると、 同様のスペースオーバーヘッド を共有します。