我们正在为位于不同地点的行业植物建立网络可视化。目前,我们为我们的概述页面使用表格布局。每行代表一个工厂及其最重要的状态和价值。如何使用leaflet.js和leaflet.js地图标记?
现在需要用标记交替显示地图。每个标记的颜色应代表当前状态(绿色= ok,红色=错误,黄色=警告等)。
在我们当前的基于表格的页面中,我们使用knockout.js将viewmodel中的各个工厂属性绑定到表格行(以及其中的相应div等)。只要状态或值发生变化,视图模型的值就会通过信号发生器更新,因此您可以将其视为基于事件的实时状态表示。由于此视图模型已包含我们需要在地图上显示的所有信息,因此我想将小叶标记绑定到视图模型,但我看不出如何实现这一点。问题在于没有可用于data-bind
属性的标记的元素。准确地说:我可以为每个工厂添加(静态)标记,但这不是问题,但我无法将它们与数据绑定到视图模型,以动态表示视图模型中的变化值。有没有办法做到这一点?
我真的很喜欢继续传单,因为它完全符合我们的需求。 Web应用程序需要运行在永久与互联网断开的特殊网络中,因此我们需要为自己的网格服务(这对于传单和Maperetive来说非常有用)。如果除传单外还有其他解决方案可以满足我们的需求,请让我知道。谢谢!
更新:这是我的viewmodel的实际json数据。每一行代表一个电台。每个电台的纬度/经度还没有添加,但我猜这个问题对于这个问题来说可以忽略不计。
{
"Rows":[
{
"StationId":1,
"Text":"MCU SE (SE 1/1) DAE",
"IsDialInStation":false,
"ConnectState":{
"StationId":1,
"DpId":14,
"Name":null,
"Value":1,
"TimeStamp":"\/Date(1400149092000)\/"
},
"ConnectStateText":"Nicht verbunden. Hier klicken für Anwahl!",
"HasActualData":{
"StationId":1,
"DpId":10,
"Name":null,
"Value":1,
"TimeStamp":"\/Date(1404890137000)\/"
},
"Anlage":{
"StationId":1,
"DpId":20101,
"Name":"Anlage",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"cmdSchalteAnlage":{
"StationId":1,
"DpId":20013,
"Name":"cmdAnlage",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Kurzzeit":{
"StationId":1,
"DpId":20104,
"Name":"Kurzzeit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"cmdSchalteKurzzeit":{
"StationId":1,
"DpId":20012,
"Name":"cmdKurzzeit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Handbetrieb":{
"StationId":1,
"DpId":20160,
"Name":"Handbetrieb",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Betriebsbereit":{
"StationId":1,
"DpId":20121,
"Name":"Betriebsbereit",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Heizt":{
"StationId":1,
"DpId":20451,
"Name":"Heizt",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Sammelstoerung":{
"StationId":1,
"DpId":20140,
"Name":"Sammelstoerung",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"SammelstoerungTechnisch":{
"StationId":1,
"DpId":20129,
"Name":"SammelstoerungTechnisch",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"KommunikationsStoerung":{
"StationId":1,
"DpId":20138,
"Name":"KommunikationsStoerung",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"KommunikationsStoerungKE":{
"StationId":1,
"DpId":20137,
"Name":"KommunikationsStoerungKE",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"AllowCommands":true,
"AllowParameters":true
},
{
"StationId":2,
"Text":"MCU SE (SE 2/1) Turm",
"IsDialInStation":false,
"ConnectState":{
"StationId":2,
"DpId":14,
"Name":null,
"Value":1,
"TimeStamp":"\/Date(1402984603000)\/"
},
"ConnectStateText":"Nicht verbunden. Hier klicken für Anwahl!",
"HasActualData":{
"StationId":2,
"DpId":10,
"Name":null,
"Value":1,
"TimeStamp":"\/Date(1404890136000)\/"
},
"Anlage":{
"StationId":2,
"DpId":20101,
"Name":"Anlage",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"cmdSchalteAnlage":{
"StationId":2,
"DpId":20013,
"Name":"cmdAnlage",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Kurzzeit":{
"StationId":2,
"DpId":20104,
"Name":"Kurzzeit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"cmdSchalteKurzzeit":{
"StationId":2,
"DpId":20012,
"Name":"cmdKurzzeit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Handbetrieb":{
"StationId":2,
"DpId":20160,
"Name":"Handbetrieb",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Betriebsbereit":{
"StationId":2,
"DpId":20121,
"Name":"Betriebsbereit",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Heizt":{
"StationId":2,
"DpId":20451,
"Name":"Heizt",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Sammelstoerung":{
"StationId":2,
"DpId":20140,
"Name":"Sammelstoerung",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"SammelstoerungTechnisch":{
"StationId":2,
"DpId":20129,
"Name":"SammelstoerungTechnisch",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"KommunikationsStoerung":{
"StationId":2,
"DpId":20138,
"Name":"KommunikationsStoerung",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"KommunikationsStoerungKE":{
"StationId":2,
"DpId":20137,
"Name":"KommunikationsStoerungKE",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"AllowCommands":true,
"AllowParameters":true
},
{
"StationId":4,
"Text":"Test W 1",
"IsDialInStation":false,
"ConnectState":{
"StationId":4,
"DpId":14,
"Name":null,
"Value":1,
"TimeStamp":"\/Date(1402996083000)\/"
},
"ConnectStateText":"Nicht verbunden. Hier klicken für Anwahl!",
"HasActualData":{
"StationId":4,
"DpId":10,
"Name":null,
"Value":0,
"TimeStamp":"\/Date(1404890134000)\/"
},
"Anlage":{
"StationId":4,
"DpId":20101,
"Name":"Anlage",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"cmdSchalteAnlage":{
"StationId":4,
"DpId":20013,
"Name":"cmdAnlage",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Kurzzeit":{
"StationId":4,
"DpId":20104,
"Name":"Kurzzeit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"cmdSchalteKurzzeit":{
"StationId":4,
"DpId":20012,
"Name":"cmdKurzzeit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Handbetrieb":{
"StationId":4,
"DpId":20160,
"Name":"Handbetrieb",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Betriebsbereit":{
"StationId":4,
"DpId":20121,
"Name":"Betriebsbereit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Heizt":{
"StationId":4,
"DpId":20451,
"Name":"Heizt",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Sammelstoerung":{
"StationId":4,
"DpId":20140,
"Name":"Sammelstoerung",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"SammelstoerungTechnisch":{
"StationId":4,
"DpId":20129,
"Name":"SammelstoerungTechnisch",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"KommunikationsStoerung":{
"StationId":4,
"DpId":20138,
"Name":"KommunikationsStoerung",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"KommunikationsStoerungKE":{
"StationId":4,
"DpId":20137,
"Name":"KommunikationsStoerungKE",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"AllowCommands":true,
"AllowParameters":true
},
{
"StationId":3,
"Text":"Test W 2",
"IsDialInStation":false,
"ConnectState":{
"StationId":3,
"DpId":14,
"Name":null,
"Value":1,
"TimeStamp":"\/Date(1402996031000)\/"
},
"ConnectStateText":"Nicht verbunden. Hier klicken für Anwahl!",
"HasActualData":{
"StationId":3,
"DpId":10,
"Name":null,
"Value":1,
"TimeStamp":"\/Date(1405488343000)\/"
},
"Anlage":{
"StationId":3,
"DpId":20101,
"Name":"Anlage",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"cmdSchalteAnlage":{
"StationId":3,
"DpId":20013,
"Name":"cmdAnlage",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Kurzzeit":{
"StationId":3,
"DpId":20104,
"Name":"Kurzzeit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"cmdSchalteKurzzeit":{
"StationId":3,
"DpId":20012,
"Name":"cmdKurzzeit",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Handbetrieb":{
"StationId":3,
"DpId":20160,
"Name":"Handbetrieb",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Betriebsbereit":{
"StationId":3,
"DpId":20121,
"Name":"Betriebsbereit",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Heizt":{
"StationId":3,
"DpId":20451,
"Name":"Heizt",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"Sammelstoerung":{
"StationId":3,
"DpId":20140,
"Name":"Sammelstoerung",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"SammelstoerungTechnisch":{
"StationId":3,
"DpId":20129,
"Name":"SammelstoerungTechnisch",
"Value":1,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"KommunikationsStoerung":{
"StationId":3,
"DpId":20138,
"Name":"KommunikationsStoerung",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"KommunikationsStoerungKE":{
"StationId":3,
"DpId":20137,
"Name":"KommunikationsStoerungKE",
"Value":0,
"TimeStamp":"\/Date(-62135596800000)\/"
},
"AllowCommands":true,
"AllowParameters":true
}
]
}
标记有什么值?这只是状态,你想要改变颜色吗? –
由于看起来你不能真正使用标记,你需要用js插入/更新标记。您仍然可以使用'subscribe'函数获取视图模型的更新并将其传递到标记上。 –
这将是一个好的开始,但最后还有更多的内容:一个文本显示一个值,一个显示植物名称。 – Robert