Places API を使用する Web サイト pune.org があります。しかし、ご覧のとおり、マーカーを選択すると、行ごとのリストが追加され続け、最終的にマップ エリア全体が役に立たなくなります。
リストをリセットするにはどうすればよいですか、または理想的には、現在選択されているマーカーのリストのみを表示するにはどうすればよいですか?
ありがとう、サンディープ
Places API を使用する Web サイト pune.org があります。しかし、ご覧のとおり、マーカーを選択すると、行ごとのリストが追加され続け、最終的にマップ エリア全体が役に立たなくなります。
リストをリセットするにはどうすればよいですか、または理想的には、現在選択されているマーカーのリストのみを表示するにはどうすればよいですか?
ありがとう、サンディープ
たとえば、マップがパンするたびに、コード内で Places Service を数回インスタンス化しています。最初に service という名前のグローバル変数を設定してから、Places Service を 1 回インスタンス化する必要があります (* マップの初期化中が適切です)。service.search
次に、サービスを何度もインスタンス化するのではなく、他の関数でメソッドを呼び出すだけです。
そう:
var service;
\\Rest of other global variables
function initializeMap(initialLat, initialLng, detectCurrentLocation, radius,
zoomLevel, defaultType) {
initialLocation = new google.maps.LatLng(initialLat, initialLng);
geocoder = new google.maps.Geocoder();
var myOptions = {
zoom : zoomLevel,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
service = new google.maps.places.PlacesService(map); //Only do this once!
...//rest of your code
}
次に、コード内の他のインスタンスを削除し、service = new google.maps.places.PlacesService(map);
呼び出すだけですservice.search(request, callback);