Piemēri: |
Lietotāja objektu (punktu, līniju un poligonu) veidošana uz kartesKaršu TV dod iespēju ļaut lietotājam uz kartes atzīmēt sev vēlamo objektu, norādīt tā parametrus un saglabāt to.
Zīmēšanas pogu parādīšanaLai lietotājs varētu sākt zīmēt objketus, nepieciešams izsaukt funkciju map.ShowDrawControls(), kas uz kartes parāda trīs papildus pogas:
.
Uzspiežot uz kādas no pogām, lietotājs tiek pārslēgts izvēlētā objekta zīmēšanas režīmā - klikšķinot peles kursoru uz kartes, tiek atzīmēts attiecīgais objekts. Līnijas un poligona gadījumā zīmēšanu var pabeigt veicot dubultklikšķi.
// Pogu parādīšana map.ShowDrawControls();
Zīmēšanas pogu atslēgšana un pieslēgšanaIespējams atslēgšana un pieslēgšana zīmēšanas pogas.// Poligona pogas atslēgšana map.draw_control.HidePolyLine(); // Poligona pogas pieslēgšana map.draw_control.ShowPolyLine(); // Līnijas pogas atslēgšana map.draw_control.HideLine(); // Līnijas pogas pieslēgšana map.draw_control.ShowLine(); // Punkta pogas atslēgšana map.draw_control.HidePoint(); // Punkta pogas pieslēgšana map.draw_control.ShowPoint();
Objektu saglabāšanaBeidzot zīmēšanu, tiek izraisīti notikumi atkarībā no zīmētā objekta tipa. Pierakstoties uz šiem notikumiem, iespējams lietotājam parādīt gan karšu TV noklusēto saglabāšanas formu, gan arī veidot savu specializēto saglabāšanas logu.
// līnijas zīmēšanas beigšana
map.event_finished_line_drawing.AddCallback(ShowSaveBoxLine);
// poligona zīmēšanas beigšana
map.event_finished_polygon_drawing.AddCallback(ShowSaveBoxLine);
// punkta zīmēšanas beigšana
map.event_finished_point_drawing.AddCallback(ShowSaveBoxLine);
// noklusētā saglabāšanas loga atvēršana līnijai un poligonam
function ShowSaveBoxLine(args)
{
// parametrs args.id ir vektora līnijas identifikators
// parametri args.x un args.y ir ģeogrāfiskās koordinātes, kurās tika veikts dubulklikšķis,
// lai varētu zināt, kur rādīt saglabāšanas logu
map.save_box.Show(args.id, args.x, args.y);
}
// noklusētā saglabāšanas loga atvēršana līnijai un poligonam
function ShowSaveBoxPoint(args)
{
// parametrs args.id ir vektora punkta identifikators
// parametri args.x un args.y ir ģeogrāfiskās koordinātes, kur tika beigta zīmēšana,
// lai varētu zināt, kur rādīt saglabāšanas logu
map.save_box.SavePoint(args.id, args.x, args.y);
}
// izmantojot noklusēto saglabāšanas logu, jāpierakstās uz objekta saglabāšanas notikumu,
// kas tiek izraisīts, kad lietotājs nospiedis pogu saglabāt.
// līnijas saglabāšana. argumenta objekta struktūra: {name:string, description:string, stroke:{color: [22, 200, 20, 1], width: 2}}
map.save_box.event_user_line_saved.AddCallback(function(args){alert([args.name, args.description]);});
// poligona saglabāšana.
// argumenta objekta struktūra: {name:string, description:string, stroke:{color: [22, 200, 20, 1], width: 2}, fill: [22, 200, 20, 1]}
map.save_box.event_user_polygon_saved.AddCallback(function(args){alert([args.name, args.description]);});
// punkta saglabāšana.
// argumenta objekta struktūra: {point_id:int, name:string, description:string, stroke:{color: [22, 200, 20, 1], width: 2}, [22, 200, 20, 1]}
map.save_box.event_user_point_saved.AddCallback(function(args){alert([args.name, args.description]);});
Pielāgotais saglabāšanas logsIespējams arī pašiem veidot saglabāšanas loga izskatu, reaģējot uz jau iepriekš aprakstītajiem objektu zīmēšanas beigšanas notikumiem.Ieteicamais veids būtu parādīt Info loga objektu un to izveidot pēc vajadzībām.
// līnijas zīmēšanas beigšana
map.event_finished_line_drawing.AddCallback(ShowCustomSaveBox);
function ShowCustomSaveBox(args)
{
map.info_box.context.innerHTML = "Input data: <input type=\"text\" name=\"data\">";
map.info_box.ShowNoContextChange(args.x, args.y, 0, 0);
}
|