2016-01-18 2 views
-1

Я хотел бы нарисовать прямоугольник над картой google, и этот прямоугольник должен быть границей некоторых стран. Например, если я принимаю NE & Координаты SW Франции, Италии и Швейцарии, я должен рассчитать, какие внешние значения имеют значение NE и SW; верхняя левая точка должна быть из Франции, а нижняя правая - из Италии.Вычислить внешние координаты из массива

Это мой массив:

var arr = new Array(); 
arr.push(new coordinate(13.9918383, 9.19871231)); 
arr.push(new coordinate(11.2215083, 9.23882110)); 

Как я могу вычислить эти значения из массива координат?

enter image description here

+1

У вас есть массив примеров с вашими координатами, чтобы мы могли видеть, с какими данными вы работаете и как структурированы? –

+0

да, я обновил код – Ras

+0

Откуда берутся координаты? Что такое «координата» (ее не входит в API Javascript Google 3)? Похоже, что вы хотите [LatLngBounds.union] (https://developers.google.com/maps/documentation/javascript/reference#LatLngBounds) – geocodezip

ответ

1

Вы можете найти максимальное и минимальное значения, обернув по массиву, и сравнивая значения ваших координат.

function coordinate(x, y) { 
    this.x = x; 
    this.y = y; 
} 

var arr = new Array(); 
arr.push(new coordinate(13.9918383, 9.19871231)); 
arr.push(new coordinate(11.2215083, 9.23882110)); 


var maxN, maxS, maxE, maxW, ne, sw; 

for(var i = 0; i < arr.length; i++) { 
    if(maxN == undefined) { maxN = arr[i].y; } 
    if(maxS == undefined) { maxS = arr[i].y; } 
    if(maxE == undefined) { maxE = arr[i].x; } 
    if(maxW == undefined) { maxW = arr[i].x; } 


    //check NE 
    if(arr[i].y <= maxN && arr[i].x >= maxE) { 
     maxN = arr[i].y; 
     maxE = arr[i].x; 
     ne = arr[i]; 
    } 
    //check SW 
    if(arr[i].y >= maxS && arr[i].x <= maxW) { 
     maxS = arr[i].y; 
     maxW = arr[i].x; 
     sw = arr[i]; 
    } 

} 

console.log('Furthest NE position is: '+ne.x + ', '+ne.y); 
console.log('Furthest SW position is: '+sw.x + ', '+sw.y); 

Вы можете видеть, что работает в этом JS скрипку: https://jsfiddle.net/9w1aLxkk/1/

Надежда, что помогает!

Смежные вопросы