سؤال

لقد بدأت للتو في استخدام Google Maps API (v3.0) وحصلت على قدر كبير من النجاح حتى الآن. أقوم بتحميل مجموعة من الكائنات ذات قيم Latitude & Lratuitude من قاعدة بيانات ، ونقلها إلى البرنامج النصي الخاص بي ، وحلق عليها في البرنامج النصي من أجل إضافتها إلى الخريطة.

أنا أستخدم "bounds.extend() / map.fitBounds()"طريقة تعيين Zoom & Bounds للخريطة (انظر الكود أدناه) ، والتي تعمل كما هو متوقع في المرة الأولى ؛ ومع ذلك ، إذا قمت بمسح العلامات الموجودة ، وجلب مجموعة أخرى من الكائنات ، وافعل الشيء نفسه على نفس مثيل الخريطة, ، يحدد الحدود بشكل غير صحيح ، مما يؤدي عادة إلى الحد الأدنى من التكبير (وجهة نظر رائد فضاء).

شكوكي هي أن كائن الخريطة الخاص بي يحتوي على بعض الذاكرة للمجموعة السابقة من الحدود التي أعطيتها وأنني بحاجة إلى إيجاد طريقة لمسح هذه الحدود قبل تعيينها الجديدة ، لكنني لا أستطيع أن أكون متأكدًا جدًا.

أي مساعدة يحظى بتقدير كبير!

var locationList = [];
for (var i = 0; i < mapPoints.length; i++) { // mapPoints is a collection of DTOs
    var mapPoint = mapPoints[i];
    var location = new google.maps.LatLng(mapPoint.Latitude, mapPoint.Longitude);
    locationList.push(location);

    var marker = new google.maps.Marker({
        map: map,
        icon: '/Content/images/map/' + mapPoint.Status.Icon,
        shadow:  '/Content/images/map/shadow.png',
        position: location
    });
    markers.push(marker); // markers is an Array that is managed outside this loop
}

var bounds = new google.maps.LatLngBounds();
for (var j = 0; j < locationList.length; j++) 
    bounds.extend(locationList[j]);
map.fitBounds(bounds);
هل كانت مفيدة؟

المحلول

هذه ليست الإجابة ، إذا جاز التعبير ، ولكن حل بديل (خارق قليلاً) اكتشفته على أ مسلك في مجموعة خرائط Google JavaScript API V3:

//map.fitBounds(bounds);
setTimeout( function() { map.fitBounds( bounds ); }, 1 ); 

نصائح أخرى

إذا لم تنجح الإجابة أعلاه من أجلك (لم يكن ذلك بالنسبة لي) ، فقد تكمن المشكلة في bootstrap (على افتراض أنك تستخدمها). تولد متوسطات bootstrap على وجه التحديد جميع أنواع السلوك المتزعزع عندما قمت بتضمين كائن خريطة فيه .. تصحيح نفسه بفضول إذا/عندما أسقط "تنبيهًا" هناك .. على أي حال ، قمت بحل كل مشاكلي فقط عن طريق بناء وسيط خاص بي (أي عدم استخدام معانك bootstraps).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top