2016-04-12 12 views
2

を「予想」ではなく、ほとんどの最初の私の状態で場所を返し、これは単純な実装であります最初に提案された場所はLong Beach, CAで、次はロンドンのイギリスです。これは単なる例です。、GoogleのオートコンプリートAPIは、アドレスを入力するときに、私はGoogleのオートコンプリートを使用していた場所

私はカリフォルニアに位置しています。一般的に言えば、私が住所を入力し始めると、私に提供された場所はCAにあります。北米全体のどこにその場所を提供するのですか?

私は同じように、私のオートコンプリートの設定を変更しようとしました:

autocomplete_origin_address = new google.maps.places.Autocomplete(
    document.getElementById('origin_address'), {types: ["route", "geocode"]} 
); 

しかし、この場合にはオートコンプリートは、私は配列にのみrouteを保持しても(何も提供していませんでした設定し

方法。 ?CAから、しかし、北米からではない主な場所を提案するオートコンプリートアップ

答えて

0

これを試してみてください:

navigator.geolocation.getCurrentPosition(position=> { 
    $.getJSON("https://maps.googleapis.com/maps/api/geocode/json?latlng=" 
      + position.coords.latitude + "," + position.coords.longitude 
      + "&sensor=false").then(data=> { 
    for (let component of data.results[0].address_components) { 
     if (component.types.includes("country")) { 
     new google.maps.places.Autocomplete(
      $('#origin_address')[0], {types: ["geocode"], 
      componentRestrictions: {country: component.short_name}} 
     ); 
     break; 
     } 
    } 
    }) 
}) 

まず、broswserのGeolocation APIを使用して現在の位置情報を取得します。次に、緯度と経度に基づいて国を取得するようGoogle Maps APIに要求します。その後、オートコンプリートを初期化し、それをこの国に限定します。

JS Fiddle demoを参照してください。

関連する問題