|
- function makeLandmark(name, height, image) {
- views = {
- building: {
- attributes: {
- height: {
- name: "Height",
- power: 1,
- type: "length",
- base: height,
- },
- },
- image: image,
- name: "building",
- },
- };
-
- return makeEntity({ name: name }, views);
- }
-
- function makeLandmarks() {
- const results = [];
-
- results.push({
- name: "Burj Khalifa",
- constructor: () =>
- makeLandmark("Burj Khalifa", math.unit(829.8, "meter"), {
- source: "./media/landmarks/burj-khalifa.svg",
- }),
- });
-
- results.push({
- name: "Canton Tower",
- constructor: () =>
- makeLandmark("Canton Tower", math.unit(604, "meter"), {
- source: "./media/landmarks/canton-tower.svg",
- }),
- });
-
- results.push({
- name: "CN Tower",
- constructor: () =>
- makeLandmark("CN Tower", math.unit(553.3, "meter"), {
- source: "./media/landmarks/cn-tower.svg",
- }),
- });
-
- results.push({
- name: "Taipei 101",
- constructor: () =>
- makeLandmark("Taipei 101", math.unit(509.2, "meter"), {
- source: "./media/landmarks/taipei-101.svg",
- }),
- });
-
- results.push({
- name: "Empire State Building",
- constructor: () =>
- makeLandmark("Empire State Building", math.unit(443.2, "meter"), {
- source: "./media/landmarks/empire-state-building.svg",
- }),
- });
-
- results.push({
- name: "Eiffel Tower",
- constructor: () =>
- makeLandmark("Eiffel Tower", math.unit(324, "meter"), {
- source: "./media/landmarks/eiffel-tower.svg",
- }),
- });
-
- results.push({
- name: "Chrysler Building",
- constructor: () =>
- makeLandmark("Chrysler Building", math.unit(318.9, "meter"), {
- source: "./media/landmarks/chrysler-building.svg",
- }),
- });
-
- results.push({
- name: "Gateway Arch",
- constructor: () =>
- makeLandmark("Gateway Arch", math.unit(630, "feet"), {
- source: "./media/landmarks/gateway-arch.svg",
- }),
- });
-
- results.push({
- name: "Washington Monument",
- constructor: () =>
- makeLandmark(
- "Washington Monument",
- math.unit(555 + 5 / 12, "feet"),
- { source: "./media/landmarks/washington-monument.svg" }
- ),
- });
-
- results.push({
- name: "Great Pyramid of Giza",
- constructor: () =>
- makeLandmark("Great Pyramid of Giza", math.unit(146, "meters"), {
- source: "./media/landmarks/pyramid.svg",
- }),
- });
-
- results.push({
- name: "Statue of Liberty",
- constructor: () =>
- makeLandmark("Statue of Liberty", math.unit(305.5, "feet"), {
- source: "./media/landmarks/statue-of-liberty.svg",
- }),
- });
-
- results.push({
- name: "Leaning Tower of Pisa",
- constructor: () =>
- makeLandmark("Leaning Tower of Pisa", math.unit(185.93, "feet"), {
- source: "./media/landmarks/leaning-tower-of-pisa.svg",
- bottom: 84 / 3755,
- }),
- });
-
- results.push({
- name: "Elizabeth Tower",
- constructor: () =>
- makeLandmark("Elizabeth Tower", math.unit(315, "feet"), {
- source: "./media/landmarks/elizabeth-tower.svg",
- }),
- });
-
- results.push(
- makeModel({
- name: "Towers",
- kind: "landmarks",
- forms: [
- {
- name: "Tokyo Skytree",
- views: [{ name: "Front", height: 634 }],
- },
- {
- name: "Canton Tower",
- views: [{ name: "Front", height: 604 }],
- },
- {
- name: "CN Tower",
- views: [{ name: "Front", height: 553.3 }],
- },
- {
- name: "Ostankino Tower",
- views: [{ name: "Front", height: 540.1 }],
- },
- {
- name: "Oriental Pearl Tower",
- views: [{ name: "Front", height: 468 }],
- },
- {
- name: "Milad Tower",
- views: [{ name: "Front", height: 435 }],
- },
- {
- name: "Kuala Lumpur Tower",
- views: [{ name: "Front", height: 421 }],
- },
- ],
- })
- );
-
- results.sort((b1, b2) => {
- e1 = b1.constructor();
- e2 = b2.constructor();
- return -math.subtract(
- e1.views[e1.defaultView].height,
- e2.views[e2.defaultView].height
- ).value;
- });
-
- return results;
- }
|