Autocompleteユーザーが開発ガイドに関連付けられている入力ボックスに入力する内容に関しては、入力内容を制御するためにできることはあまりありません。Autocompleteただし、 api-docを設定するときに、返される結果を制御するオプションを定義できます。typesあなたにとっての鍵は、オプションを正しく設定することです。
質問#1に固有に、次の例に示すようにに設定することで、Autocompleteアドレスに返される結果を制限できます。typesgeocode
var defaultBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(-33.8902, 151.1759),
new google.maps.LatLng(-33.8474, 151.2631));
var input = document.getElementById('searchTextField');
var options = {
bounds: defaultBounds,
types: ['geocode']
};
autocomplete = new google.maps.places.Autocomplete(input, options);
質問#2に固有に、次のように設定することで、に戻ってくる結果Autocompleteを都市に制限できます。typescities
var input = document.getElementById('searchTextField');
var options = {
types: ['(cities)'],
componentRestrictions: {country: 'fr'}
};
autocomplete = new google.maps.places.Autocomplete(input, options);
Autocompleteまた、に制限されているため、都市を検索する国(この場合はフランス)を設定するための指定子を(cities)追加し、指定子を削除したことにも注意してください。componentRestrictionsbounds
次のUML図に示すように、質問#3に固有に、2つのテーブルを作成できます。1つは都市データを格納し、もう1つは住所データを格納します。

質問の説明に基づいて、この設計にはいくつかの重要な側面があります。
- からへは1対多の関係があり
CityますAddress。Addressこれにより、多くのレコードを1つのレコードに関連付けることができますCity。Addressまた、任意のに入力されたすべてのレコードを簡単に取得できるようになりますCity。
Addressとの間の関係はCity、すべて Addressに対して、Cityが存在する必要があることを示しています。つまり、ユーザーがを入力するときは、次のアクションを実行する必要があります。1-データベースにがすでに存在するAddressかどうかを確認します。2-が存在する場合は、それを取得し、新しいを格納するときに外部キー値として使用します。3-が存在しない場合は、の新しい一意を作成し、データベースに保存する必要があります。次に、forを格納するときに外部キー値として使用できます。すべてに関連付けられていることを確認するCityAddressCity IDCity-IDAddressCity IDCityCityIDCityCity-IDAddressAddressCity質問の一部として尋ねる質問の1つに答えます#3:最初のユーザーの結果を見つけるにはどうすればよいですか:「MyCity」キーを使用して「MyCity、MyStreet12」?「MyCity、MyStreet 12」Adressレコードを保存したときに、「MyCity」レコードがCityテーブルに存在することを確認したためです。別のユーザーが同じものを入力した場合、または同じものに関連付けられたものが将来ユーザーによって入力された場合、のIDの取得Cityは簡単です。CityAddressCity
Cityとの間の関係はAddress、いずれの場合も、関連付けられたレコードCityが0個以上ある可能性があることを示しています。これにより、フォローアップ検索が行われなくてもAddress、aだけを検索する説明内のユーザーCityが保存できるようになります。は保存され、があり、後で追加される可能性のある新しいレコードを待機しているだけです。CityAddressCityIDAddress
最後に、質問3の一部としてもう1つ質問しました。IDのみを使用して、完全な住所が都市に属しているかどうかを確認するにはどうすればよいですか。この質問に答えることができるCity-IDのは、すべてのAddressレコードの一部である外部キーがある理由です。Cityに関連付けられているを明確に定義しますAddress。したがって、foraとforaがある場合、それらが一致するかどうかを判断する最も簡単な方法は次のとおりです。1-IDデータベースからを使用してを取得します。2-データベースから取得したばかりの値の一部である値を、最初に使用した値と比較します。それらが一致する場合、あなたはに関連付けられていることを知っていますCityIDAddressAddressAddress IDCity-IDAddressIDCityAddressCityそれらが一致しない場合は、それとそれの間に関係がないことを確認できAddressますCity。
住所や都市で何を達成しようとしているのか完全にはわかりませんが、質問で説明したことをカバーする確実な解決策を提供しようとしました。私はあなたのすべてのポイントが扱われるように、そしてそれが私の説明を明確で理解しやすいものにすることを願って、非常に多くの詳細を含めました。これがお役に立てば幸いです-