2015-03-05 2 views
-1

Я хотел был бы иметь возможность получить координаты от моего json-файла для того чтобы сделать мой полигон (ы) редактируемый когда пользователь щелкает полигон. На моей карте Google может быть неограниченное количество полигонов.Получить координаты из getJSON, когда пользователи нажимают на многоугольник

Чтобы загрузить мой полигон Я использую следующие

$.getJSON('PATH TO FILE', function (data) { 
var features = map.data.addGeoJson(data); 
}); 

Я затем добавить карту нажмите слушателя так, когда пользователь нажимает на многоугольнике информацию в файле формата JSON показан в Div теги, как так:

map.data.addListener('click', function(event) { 
var WTGlobal = "rows='4' style='text-align:left; font-family:Verdana, Geneva, sans-serif; font-size:9px; width:96%'"; 
var RRGlobal = "type='text' size='3' maxlength='4' style='text-align:center; font-family:Verdana, Geneva, sans-serif; font-size:9px' autocomplete='off'"; 
var PPGlobal = "type='text' size='3' maxlength='3' style='text-align:center; font-family:Verdana, Geneva, sans-serif; font-size:9px' autocomplete='off'"; 
var TTGlobal = "type='text' size='3' maxlength='4' style='text-align:center; font-family:Verdana, Geneva, sans-serif; font-size:9px' autocomplete='off'"; 
var MMGlobal = "type='text' size='3' maxlength='4' style='text-align:center; font-family:Verdana, Geneva, sans-serif; font-size:9px' autocomplete='off'"; 

document.getElementById('REGION').textContent = event.feature.getProperty('Region'); 
document.getElementById('ISSUED').textContent = event.feature.getProperty('Issued'); 
document.getElementById('VALIDT').textContent = event.feature.getProperty('Valid'); 

и т.д .......

В этой точке, где мне нужна помощь. Когда пользователь нажимает на многоугольник, я хотел бы получить координаты из моего json-файла, чтобы координаты могли быть включены в новую функцию, чтобы снова сделать редактируемый многоугольник.

Это то, что я пытался получить координаты

var coords = event.feature.getGeometry('coordinates'); 
alert(coords); 

Это просто возвращает объект обратно в моем окне предупреждения.

Новая функция, где мне нужно кормить координаты ниже:

function EditPolgons(){ 
alert("Do you want to Edit polygon?"); 
    nowEditingShape = new google.maps.Polygon({ 
    paths: coords, 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35, 
editable: true 
}); 
nowEditingShape.setMap(map); 
} 

Спасибо.

ответ

0

Мне удалось это понять. В моем json я добавил lat, lng в качестве строки, после чего я смог восстановить их, чтобы сделать копию полигона, на которую была нажата кнопка. Затем копия могла быть доступна для редактирования.

map.data.addListener('dblclick', function(event) { 
alert("Testing Edit Polygon"); 
//LOAD GeoJSON====================== 
$.getJSON('PATH TO URL', function (data) { 
var features = map.data.addGeoJson(data); 
}); 
var Id  = event.feature.getProperty('Region'); 
var CoordsLat = event.feature.getProperty('Lat'); 
var CoordsLng = event.feature.getProperty('Lng'); 
var Lat = new Array(); 
    var Lat = CoordsLat.split(','); 
    var Lng = new Array(); 
    var Lng = CoordsLng.split(','); 
    var Paths =[]; 

    for (var i = 0, length = Lat.length; i < length; i++) { 
    Paths.push(new google.maps.LatLng(Lat[i],Lng[i])); 
    } 
    //CONSTRUCTION EDITABLE POLYGON 
    EditablePolygon = new google.maps.Polygon({ 
    editable: true, 
    paths: Paths, 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 3, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35 
    });     

Теперь это означает, что если какие-либо пользователи dblclicks на номер числа полигонов они могут сделать то редактируемые и перерисовать форму, чтобы удовлетворить.

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

  • Нет связанных вопросов^_^