تخزين لونغتيتيود وخط العرض من علامة موضعية في صفيف

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

  •  26-12-2019
  •  | 
  •  

سؤال

لذلك أنا أعمل على صفحة ويب باستخدام واجهة برمجة تطبيقات غوغل إيرث حيث يتحرك مكوك في جميع أنحاء المدينة ويلتقط الركاب.الركاب هو مجموعة محددة مسبقا من الكائنات وهو ملف جافا سكريبت منفصل نظرا لطول.هنا هو رمز بلدي للدالة populate الذي يملأ الخريطة 3 د مع العلامات الموضعية:

function populate()
{
// mark houses
for (var house in HOUSES)
{
    // plant house on map
    new google.maps.Marker({
        icon: "https://google-maps-icons.googlecode.com/files/home.png",
        map: map,
        position: new google.maps.LatLng(HOUSES[house].lat, HOUSES[house].lng),
        title: house
    });
}

// get current URL, sans any filename
var url = window.location.href.substring(0, (window.location.href.lastIndexOf("/")) + 1);

// scatter passengers
for (var i = 0; i < PASSENGERS.length; i++)
{
    // pick a random building
    var building = BUILDINGS[Math.floor(Math.random() * BUILDINGS.length)];

    // prepare placemark
    var placemark = earth.createPlacemark("");
    placemark.setName(PASSENGERS[i].name + " to " + PASSENGERS[i].house);

    // prepare icon
    var icon = earth.createIcon("");
    icon.setHref(url + "/img/" + PASSENGERS[i].username + ".jpg");

    // prepare style
    var style = earth.createStyle("");
    style.getIconStyle().setIcon(icon);
    style.getIconStyle().setScale(4.0);

    // prepare stylemap
    var styleMap = earth.createStyleMap("");
    styleMap.setNormalStyle(style);
    styleMap.setHighlightStyle(style);

    // associate stylemap with placemark
    placemark.setStyleSelector(styleMap);

    // prepare point
    var point = earth.createPoint("");
    point.setAltitudeMode(earth.ALTITUDE_RELATIVE_TO_GROUND);
    point.setLatitude(building.lat);
    point.setLongitude(building.lng);
    point.setAltitude(0.0);

    // associate placemark with point
    placemark.setGeometry(point);

    // add placemark to Earth
    earth.getFeatures().appendChild(placemark);

    // add marker to map
    var marker = new google.maps.Marker({
        icon: "https://maps.gstatic.com/intl/en_us/mapfiles/ms/micons/man.png",
        map: map,
        position: new google.maps.LatLng(building.lat, building.lng),
        title: PASSENGERS[i].name + " at " + building.name
    });

    //remember passenger's placemark and marker for pick-up's sake
    PASSENGERS[i].lat = placemark.getGeometry.getLatitude();
    PASSENGERS[i].lng = placemark.getGeometry.getLongtitude();
}
}

ومع ذلك ، عند تحميل صفحتي أحصل على الخطأ التالي من وحدة التحكم: Uncaught TypeError: undefined is not a function فيما يتعلق سطرين الأخيرة من التعليمات البرمجية:
PASSENGERS[i].lat = placemark.getGeometry.getLatitude(); PASSENGERS[i].lng = placemark.getGeometry.getLongtitude()

أي أفكار كيف يمكنني الحصول على خطوط الطول والغاز الطبيعي المسال بشكل صحيح?شكرا لكم مقدما.

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

المحلول

كما قال آخرون getGeometry هي طريقة وتحتاج إلى أقواس () ليتم تنفيذها.

تبحث أيضا في التعليمات البرمجية الخاصة بك يمكنك فقط استخدام building.lat و building.lng - لأن هذه هي الخصائص المستخدمة لتعيين هندسة العلامة الموضعية في المقام الأول.

حقا أنه من غير المجدي استدعاء المزيد من الأساليب ، جيتجوميتري().جيتلاتيتيود () ، للحصول على قيمة لديك بالفعل.

الشخص في المبنى, لا?

على سبيل المثال.

PASSENGERS[i].lat = building.lat;
PASSENGERS[i].lng = building.lng;

نصائح أخرى

حاول

الركاب [أنا].اللات = علامة موضعية.احصل على الهندسة ().جيتلاتيتيود();

الركاب [أنا].الغاز الطبيعي المسال = علامة موضعية.احصل على الهندسة ().الحصول على طول ();

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