واجهة برمجة تطبيقات خرائط Google - مشكلات تتعلق بفئة GLatLngBounds

StackOverflow https://stackoverflow.com/questions/16638

  •  08-06-2019
  •  | 
  •  

سؤال

أواجه بعض المشاكل مع واجهة برمجة تطبيقات خرائط جوجل.لدي مصفوفة تحتوي على ojbect قمت بإنشائها لتخزين النقاط.

مجموعتي وفئتي:

var tPoints = [];    
function tPoint(name) {
        var id = name;
        var points = [];
        var pointsCount = 0;
        ...
        this.getHeadPoint = function() { return points[pointsCount-1]; }
    }

tPoint يحمل مجموعة من جلاتلينغ نقاط.أريد أن أكتب دالة لإرجاع a جلاتلينغبوندز كائن ممتد من حدود الخريطة الحالية لإظهار كافة النقاط الرئيسية.

هذا ما لدي حتى الآن ..

function getBounds() {
    var mBound = map.getBounds();
    for (var i = 0; i < tPoints.length; i++) {
        alert(mBound.getSouthWest().lat() + "," + mBound.getSouthWest().lng());
        alert(mBound.getNorthEast().lat() + "," + mBound.getNorthEast().lng());
            currPoint = trackMarkers[i].getHeadPoint();        
            if (!mBound.containsLatLng(currPoint)) {
                mBound.extend(currPoint);
            }
        }
    return mBound;
}

الذي يقوم بإرجاع هذه القيم للتنبيه.(عمومًا فوق الولايات المتحدة)

"19.64258،نان"
"52.69636،نان"
"أنا = 0"
"19.64258،نان"
"52.69636,-117.20701"
"أنا = 1"

لا أعرف لماذا أستعيد NaN.عندما أستخدم الحدود للحصول على مستوى التكبير/التصغير، أعتقد أن قيمة NaN تتسبب في إرجاع Map.getBoundsZoomLevel(bounds) إلى 0 وهو غير صحيح.هل أنا أستخدم جلاتلينغبوندز بشكل غير صحيح؟

هل كانت مفيدة؟

المحلول

نموذج خرائط جوجل يستخدم هذا الرمز...

var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();

...الذي يضع الحدود الجنوبية الغربية/الشمالية الشرقية في متغير قبل محاولة الحصول على إحداثيات lng/latin الفردية.ربما هناك شيء ما في التقييمات "المتداخلة" يسبب مشاكل.هل جربت النهج التفصيلي لمعرفة ما إذا كنت تحصل على البيانات التي تحتاجها؟

نصائح أخرى

لقد وجدت هذا المثال من خلال عمليات بحثي على Google أيضًا ولعبت به.لم تكن هذه هي المشكلة.

لقد وجدت الخلل الخاص بي.لن يتمكن أحد من حل المشكلة.اتضح أنه قبل اختبار حدودي مباشرة، قمت بتوسيط خريطتي ببيانات سيئة.لقد فعلت شيئًا مثل lngSpan = northEast.lng() - southWest.lng(); لكن جافا سكريبت فسرت var الخاص بي على أنه سلسلة.لذا (maxLng-minLng)/2 + minLng إرجاع شيء من هذا القبيل "20.456-116.1178" كما lng.لقد ركزت خريطتي على var centerPoint = new GLatLng(setLat, setLng); وبعد ذلك تصبح واجهة API للخرائط غريبة بعض الشيء؛)

شكرا على المساعدة بالرغم من ذلك.

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