UWP Map コントロールをクリックするなど、さまざまな方法を使用して地図上にウェイポイントを追加することで、ユーザーがルートを計画できる Maps コントロールを使用して UWP アプリを開発しています。ユーザーがウェイポイントまたは場所を追加できるようにする方法の 1 つは、実際の住所で検索することです。以下の BING Maps REST サービス コードを使用しますが、アプリが現在使用されている場所の言語と文化を指定しないと、常に最初にアメリカの住所が返されます。私たちの実際はアメリカ国外に住んでいます - ショック、恐怖!)。オーストラリアの「en-AU」などの言語文化文字列を指定すると、オーストラリアの住所が最初に検索され、これは非常にうまく機能することがわかりました。
public async Task<List<WayPoint>> FindAddress(string address)
{
List<WayPoint> matchingWaypoints = new List<WayPoint>();
//Create a Geocode request to submit to the BING Maps REST service.
var request = new GeocodeRequest()
{
Query = address.Trim(),
Culture = "en-AU", //HOW CAN I GET THIS FROM THE DEVICE'S CURRENT LOCATION???
IncludeIso2 = true,
IncludeNeighborhood = true,
MaxResults = 10,
BingMapsKey = MapServiceToken
};
//Process the request by using the BING Maps REST services.
var response = await ServiceManager.GetResponseAsync(request);
if (response != null &&
response.ResourceSets != null &&
response.ResourceSets.Length > 0 &&
response.ResourceSets[0].Resources != null &&
response.ResourceSets[0].Resources.Length > 0)
{
int wpNumber = 0;
foreach (BingMapsRESTToolkit.Location loc in response.ResourceSets[0].Resources)
matchingWaypoints.Add(new WayPoint(wpNumber++, loc.Address.FormattedAddress, loc.Point.Coordinates[0], loc.Point.Coordinates[1]));
}
return matchingWaypoints;
}
したがって、私が明らかにしたいことは、デバイスの地域設定からではなく、デバイスの現在の場所 (つまり国) に基づいてこの文字列を取得することです。たとえば、誰かが米国でアプリを使用している場合、en-US を指定したい場合、ニュージーランドにいる場合は en-NZ、フランスにいる場合は「fr-FR」などと指定します。私はこれを行うことができますか?ローカリゼーションについて私が読んだすべてのものは、現在の物理的な場所ではなくデバイス設定を使用しているため、まだそれを行う方法を見つけようとしています.
誰かが助けてくれるなら、本当に感謝します:-)