รับขอบเขตของ Google Map พร้อมกล่องขอบเขตโดยไม่ต้องโหลดแผนที่ใช่ไหม

ฉันกำลังสร้างโปรแกรมค้นหาร้านค้าและต้องการใช้ขั้นตอนการทำงานต่อไปนี้:

  1. ผู้ใช้เข้าสู่สถานที่
  2. เรากำหนดพิกัดทางภูมิศาสตร์โดยใช้ Google Geocoder
  3. เราตรวจสอบผลลัพธ์ geocoded สำหรับกรอบขอบเขต
  4. เราขยายแผนที่ให้พอดีกับขอบเขตที่ระบุและค้นหาร้านค้าภายในขอบเขตเหล่านั้น
  5. หากมีร้านค้าอยู่ภายในขอบเขตแผนที่ ให้แสดงร้านค้าเหล่านั้นทั้งหมดบนแผนที่
  6. แต่ถ้าตอนนี้ไม่มีร้านค้าอยู่ในกรอบขอบเขตแผนที่ ให้ซูมออกไปอีกระดับหนึ่งแล้วทำซ้ำ (5) จนกระทั่งเราพบร้านค้าบางแห่ง

ข้างต้นถือว่าใช้ได้ แต่จะดีกว่า UX หากแผนที่ไม่ปรากฏว่ามีการเคลื่อนไหวจริงๆ จนกว่าจะพบร้านค้าบางแห่ง

ดังนั้น เป็นไปได้หรือไม่ที่จะค้นหา Google Maps ดังต่อไปนี้: เมื่อมีกรอบขอบเขต เราจะสามารถค้นหาขอบเขตของ Google Map ที่ขยายอย่างถูกต้อง ที่มีกรอบขอบเขตนั้นได้หรือไม่ โดยไม่ต้องโหลด Google แผนที่?

ฉันไม่แน่ใจว่าเป็นไปได้ เพราะมันขึ้นอยู่กับความกว้างของ div แผนที่ในหน้าของฉัน ฉันคิดว่า

geocoder.geocode( {'address': search_text }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.panTo(results[0].geometry.location);
    map.fitBounds(results[0].geometry.bounds);
    var bounds_to_check_for_stores = map.getBounds();
    // QUESTION: get bounds_to_check_for_stores without the three preceding steps?
    } 
 }

person flossfan    schedule 15.05.2012    source แหล่งที่มา


คำตอบ (1)


google.maps.LatLngBoundsapi-doc มีวิธีการ : extend(point:LatLng) ซึ่งจะช่วยให้คุณสามารถขยายขอบเขตเพื่อให้แน่ใจว่าขอบเขตได้รับการปรับให้รวมจุด LatLng ที่ส่งผ่านเป็นพารามิเตอร์ วิธีการ extend ส่งกลับค่า LatLngBounds ที่ได้รับการปรับปรุงแล้ว

ด้วยสิ่งนี้ คุณสามารถ:

  1. ขยายรัศมีการค้นหารหัสภูมิศาสตร์ของคุณจนกว่าคุณจะพบร้านค้าที่เหมาะสม
  2. ค้นหาร้านค้าหรือกลุ่มร้านค้าที่ใกล้ที่สุดที่คุณต้องการใช้
  3. ดึงขอบเขตปัจจุบันจากแผนที่: Map.getBounds()
  4. โทร LatLngBounds.extend เพื่อปรับขอบเขต โดยใช้คุณสมบัติ .geometry.location ของร้านค้าที่คุณเลือกในขั้นตอนที่ 2
  5. โทร Map.panToBounds เพื่อเปลี่ยนวิวพอร์ตของแผนที่ ทำให้ประสบการณ์ของผู้ใช้เป็นเรื่องง่าย เพราะจะทำการเปลี่ยนแปลงมุมมองเพียงครั้งเดียวเท่านั้น
person Sean Mickey    schedule 15.05.2012