3

Google マップと 2 つの入力があります。どちらも次のようにオートコンプリートを使用します。

//first input autocomplete

var input1 = (document.getElementById('start'));
var autocomplete1 = new google.maps.places.Autocomplete(input1);

autocomplete1.bindTo('bounds', map);

//second input autocomplete

var input2 = (document.getElementById('end'));
var autocomplete2 = new google.maps.places.Autocomplete(input2);

autocomplete2.bindTo('bounds', map);

これらの両方の入力を入力した後、Directions API を使用して、それらの間の最短経路を表示しています。

function calcRoute() {
  var start = document.getElementById("start").value;
  var end = document.getElementById("end").value;
  var request = {
    origin:start,
    destination:end,
    travelMode: google.maps.TravelMode.DRIVING
  };
  directionsService.route(request, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(result);
    }
  });
}

私の入力は次のようになります。

<input type="text" id="start" onchange="calcRoute();" />
<input type="text" id="end" onchange="calcRoute();" /> 

問題:

たとえば、これらの入力に完全なアドレスを入力すると、すべてが正常に機能します。

ドイツのベルリンとドイツのハンブルグ (入力されたすべての文字が onchange() をトリガーするためだと思います)。

しかし、私が入力すると:

ベルリン、ドイツ、次にハム > Google オートコンプリート ドロップダウン リストからハンブルグをクリック

ハンブルグではなく、ハンブという町を示しています。

それを修正する方法はありますか?

画面

4

1 に答える 1