Skip to content

Map API

Map API, inSCADA’nın GIS harita ekranına veri göndermek için kullanılır. Harita üzerinde proje konumları, rota çizgileri ve alarm durumları görselleştirilebilir.

FonksiyonAçıklama
ins.sendMapData(name, [lat,lng], popup)Haritaya konum ekle/güncelle
ins.drawMapLines(id, points, color, weight)Haritada çizgi çiz
ins.setMapColor(color)Harita tema rengini ayarla
ins.sendMapFiredAlarmStatus()Alarm durumlarını haritada güncelle

Harita üzerinde bir konum noktası ekler veya günceller. popup parametresi HTML destekler.

ins.sendMapData(
"Energy Station",
[41.0082, 28.9784],
"<b>Istanbul</b><br>Active Power: 350 kW"
);
// → OK
// Dinamik popup — anlık değerleri göster
var power = ins.getVariableValue("ActivePower_kW").value;
var voltage = ins.getVariableValue("Voltage_V").value;
var status = ins.getConnectionStatus("LOCAL-Energy");
var popup = "<b>Energy Monitoring Demo</b><br>"
+ "<table>"
+ "<tr><td>Güç:</td><td>" + power + " kW</td></tr>"
+ "<tr><td>Gerilim:</td><td>" + voltage + " V</td></tr>"
+ "<tr><td>Durum:</td><td>" + status + "</td></tr>"
+ "</table>";
ins.sendMapData("Energy Station", [41.0082, 28.9784], popup);

ins.drawMapLines(id, points, color, weight)

Section titled “ins.drawMapLines(id, points, color, weight)”

Harita üzerinde noktalar arası çizgi çizer. Boru hatları, kablo güzergahları veya rotalar için kullanılır.

ParametreTipAçıklama
idStringÇizgi tanımlayıcı (güncelleme için)
pointsArray[[lat1,lng1], [lat2,lng2], ...] koordinat dizisi
colorStringRenk kodu (hex)
weightIntegerÇizgi kalınlığı (piksel)
ins.drawMapLines("route1",
[[41.0082, 28.9784], [41.0152, 29.0044]],
"#0066cc", 3);
// → OK
// Boru hattı güzergahı
ins.drawMapLines("pipeline_main",
[[39.92, 32.85], [40.10, 32.90], [40.25, 33.05], [40.50, 33.20]],
"#ff6600", 4);

Haritanın tema rengini ayarlar.

ins.setMapColor("#0066cc");
// → OK

Tüm projelerin alarm durumlarını haritada günceller. Harita üzerindeki proje noktaları alarm durumuna göre renklendirilir (yeşil=normal, kırmızı=alarm).

ins.sendMapFiredAlarmStatus();
// → OK
// Periyodik script ile harita verilerini güncelle (her 30 saniye)
var projects = ins.getProjects();
for (var i = 0; i < projects.size(); i++) {
var p = projects.get(i);
if (p.latitude && p.longitude) {
ins.sendMapData(p.name,
[p.latitude, p.longitude],
"<b>" + p.name + "</b><br>" + p.dsc);
}
}
ins.sendMapFiredAlarmStatus();