2012-08-04 17 views
5

Sonuçları en yakın bir noktaya sıralamak için google yerleri otomatik tamamla ayarlamaya çalışıyorum. Böyle bir kod ...Google yerleri otomatik tamamlama - konum ve yarıçap çalışmıyor

var defaultPlace = new google.maps.LatLng(49.227463, 16.546097); 

var optionsAuto = { 
    location: defaultPlace, 
    radius: 20000, 
    types: ['geocode'], 
    componentRestrictions: { 
     country: 'cz' 
    } 
}; 

var autocomplete = new google.maps.places.Autocomplete(inputStart, optionsAuto); 

türleri vardır ve componentRestrictions inşaat büyük ama konumu ve yarıçapı çalışıyor gibi görünüyor değildir. documentation

de

+0

Neden çalışmadığına inanıyor musunuz? – geocodezip

+0

çünkü sonuçlar hala aynı sırayla ... – adam

cevap

5

Bak Burada:

yarıçapı | Yer sonuçlarını döndürecek mesafeyi (metre cinsinden) tanımlar. İzin verilen maksimum yarıçap 50 000 metredir. Rankby = distance (aşağıda İsteğe bağlı parametreler altında açıklanmıştır) belirtilmişse, yarıçapın dahil edilmemesi gerektiğini unutmayın.

Opsiyonel parametreyi istediğiniz gibi ses: rankby = mesafe:

rankby | mesafe. Bu seçenek, belirtilen konumdan uzaklıklarına göre artan sırayla sonuçlanır. Mesafe ile sıralama sonuçları 50km sabit arama yarıçapı ayarlayacaktır. Bir veya daha fazla anahtar kelime, isim veya tür gerekli. Ayrıca mevcuttur

javascript service

Working Example

+0

İyi rütbe = mesafe neye ihtiyacım var gibi görünüyor. defaultPlace, rankBy: google.maps.places.RankBy.DISTANCE, türleri: [ 'coğrafi kod'], componentRestrictions: { ülke: = { yeri var optionsAuto: Benim kod böyle kullanmaya çalıştı ' cz ' } }; ama işe yaramadı. Bana doğru kullanımın ne olduğunu söyleyebilir misin? Dokümanları takip edersem, – adam

+0

'a teşekkürler. Cevabıma eklediğim çalışma örneğini görün. – geocodezip

+0

Aynı seçenekleri aldım ama hala çalışmıyor. Sorunun varsayılan otomatik tamamlamayı kullanmam olabileceğini düşünüyor musunuz? – adam

0

Birisi benimle aynı fikirde olmayabilir ama benim durumda ben tırnak işaretleri olmadan yarıçapı tanımlanan gibi yani olması mümkündür altında

var request = { 
    location: pyrmont, 
     bounds: map.getBounds(), 
    radius: 2000, 
    zoom: 15, 
    types: ['restaurant'] 
    }; 

Böylece, yarıçapta bir fark yaratmadı ve sonucu yarıçaptan bağımsız olarak gösterdi, ancak üzerinde tırnak işaretleri uygulandığında, yarıçap parametresi b e çalışma

var request = { 
    location: pyrmont, 
     bounds: map.getBounds(), 
    radius: '2000', 
    zoom: 15, 
    types: ['restaurant'] 
    }; 
İlgili konular