2015-10-05 3 views
0

Я использую goMap Library и иметь локальную базу данных с координатами стран, он хорошо работает, если я ставлю координаты непосредственно в код, но с событием щелчка я звоню ниже метод обновления карты динамически:Динамическая загрузка многоугольник

$.getJSON('countries/name', function(data) { 
    $.each(data.cords, function (i, v) { 
    var cor = ''; 
     for (i = 0; i < v.length; ++i) { 
      cor += "{longitude: "+v[i].longitude+",latitude: "+v[i].latitude+"},"; 
     } 
    console.log(cor); 
      $.goMap.createPolygon({ 
       color: "#00CC00", 
       fillColor: '#00CC00', 
       fillOpacity: 0.2, 
       weight:  2, 
       coords: [cor] 
      }); 
    }); 
    }); 

Я хочу заполнить coords: [cor] с долготой и широтой для выбранной страны и обновить карту. Если я даю значения вручную для coords: [cor], это хорошо работает, в журнале консоли нет ошибок.

ответ

2

Coordsдолжен быть массивом { latitude, longitude } не сцепленного строки:

var cor = []; 
for (i = 0; i < v.length; ++i) { 
    cor.push({ 
    longitude: v[i].longitude, 
    latitude: v[i].latitude 
    }) 
} 

и

coords: cor //not coords : [cor] 

на самом деле, мне кажется, - но не может быть 100% уверен, не знаю точно, что это такое - вы можете сразу использовать data.cords. Он поставляется ясно, если вы осмотрите gomap source, createOverlay о линии 463:

case 'polygon': 
    if (poly.coords.length > 0) { 
     for (var j = 0, l = poly.coords.length; j < l; j++) 
      overlay.push(new google.maps.LatLng(poly.coords[j].latitude, poly.coords[j].longitude)); 

     overlay = new google.maps.Polygon({ 
      map: this.map, 
      path: overlay, 
      strokeColor: poly.color ? poly.color : this.opts.polygon.color, 
      strokeOpacity: poly.opacity ? poly.opacity : this.opts.polygon.opacity, 
      strokeWeight: poly.weight ? poly.weight : this.opts.polygon.weight, 
      fillColor: poly.fillColor ? poly.fillColor : this.opts.polygon.fillColor, 
      fillOpacity: poly.fillOpacity ? poly.fillOpacity : this.opts.polygon.fillOpacity 
     }); 
    } 
     else 
      return false; 
    break; 

Почему GoMap в первую очередь? Кажется, что ничего не добавляет или ничего проще сделать, просто еще одна оболочка google map v3.

+0

Благодарим вас за добавление массива, это работает, у меня есть тема, которая полностью функциональна с помощью библиотеки goMap – user969068

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