Geomap shows marker only after entering and leaving edit mode - without actually changing something

Hi,

I observed several times the following behavior of the Geomap panel.
When I open the related dashboard the panel shows the map but not the expected position marker.
When I open the panel for edit, the preview in edit mode shows immediately the marker at the correct position. I close the edit view without changing anything and now the marker is correctly displayed in the normal dashboard view.

Some more information:

  • The dashboard has two Geomap panels. It seems that it is always the 2nd panel (from the top) that has the missing marker
  • Position data is queried from data in an InfluxDB database
  • Grafana version 11.5.2, running on Ubuntu (in a docker container)

BR Christian

hello @info90f4

do you see the same issue if you use Orchestra City plugin?

:flushed_face: wasn’t aware of that plugin, so I can not answer your question.
Do you recommend to try it? Do you think there is a chance that it will fix the issue?

I highly recommend it. will it fix it? Only one way to find out :wink: install it and try it out

Ok, perfect!
I will try it as soon as I find time. When I briefly looked at the description it seems to provide also some other features!

Thank you so far!

1 Like

@yosiasz , it took a while, but I followed your suggestion and gave the Orchestra City plugin a try.
Indeed it seems that it does not show the described behavior.
Therefore it has another issue :flushed_face:

If I wait it bit, this error is shown in the map:


If I wait again or reload the dashboard the error is gone and the map is shown correctly.
Maybe you can’t have everything? :man_shrugging:

1 Like

what does your datasource look like?

It’s InfluxDB V2.7 (if that is the answer you are looking for?).

sorry, I meant to say what does the csv data look like from influxdb in order to emulate your scenario and test things out.

Ah, OK, here is the csv-data of the last 30 days.

Äh, it is not, the forums software does not allow to upload files. How can I do that? :thinking:

Maybe already some background about the nature of the data. The sensor send it’s normal data regularly (e.g. once per hour). The GPS position is only sent when the sensor is moved. That means it can be, that I have to look far back in the data, to find the last sent GPS position.
Currently it happened 2 days ago.

location,lon,lat
aqui,32,21

Not completely sure what you mean? Post the csv directly here?

+ACM-group,false,false,true,true,false,false,true,true,true,true
+ACM-datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string
+ACM-default,mean,,,,,,,,,
,result,table,+AF8-start,+AF8-stop,+AF8-time,+AF8-value,DeviceSerialNumber,+AF8-field,+AF8-measurement,host
,,0,2025+AC0-05+AC0-27T17:30:47.319935735Z,2025+AC0-06+AC0-26T17:30:47.319935735Z,2025+AC0-06+AC0-24T16:10:05Z,52.112266,71556111,latitude,vega+AF8-flooding,owdata.de
,,0,2025+AC0-05+AC0-27T17:30:47.319935735Z,2025+AC0-06+AC0-26T17:30:47.319935735Z,2025+AC0-06+AC0-24T16:20:05Z,52.112266,71556111,latitude,vega+AF8-flooding,owdata.de
,,0,2025+AC0-05+AC0-27T17:30:47.319935735Z,2025+AC0-06+AC0-26T17:30:47.319935735Z,2025+AC0-06+AC0-24T18:00:05Z,52.112266,71556111,latitude,vega+AF8-flooding,owdata.de
,,1,2025+AC0-05+AC0-27T17:30:47.319935735Z,2025+AC0-06+AC0-26T17:30:47.319935735Z,2025+AC0-06+AC0-24T16:10:05Z,9.356095,71556111,longitude,vega+AF8-flooding,owdata.de
,,1,2025+AC0-05+AC0-27T17:30:47.319935735Z,2025+AC0-06+AC0-26T17:30:47.319935735Z,2025+AC0-06+AC0-24T16:20:05Z,9.356095,71556111,longitude,vega+AF8-flooding,owdata.de
,,1,2025+AC0-05+AC0-27T17:30:47.319935735Z,2025+AC0-06+AC0-26T17:30:47.319935735Z,2025+AC0-06+AC0-24T18:00:05Z,9.356095,71556111,longitude,vega+AF8-flooding,owdata.de

1 Like

Could you please now share your flux query and what the data looks like when queried for example

from(bucket: "ĂĽberflutet")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "vega+AF8-flooding")
  |> filter(fn: (r) => r["_field"] == "device" or r["_field"] == "latitude" or r["_field"] == "longitude")
  |> keep(columns: ["_time", "_value", "_field"])
  |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")

I’m using actually InfluxQL for querying the database.

Here are both queries.

Map 1

SELECT Last("latitude") AS "latitude", Last("longitude") AS "longitude" FROM "vega_flooding" WHERE ("DeviceSerialNumber"::tag = '71556111')

grafik
If I look up the data in the InfluxDB UI I find this as the last entry.

table,_time,_value,DeviceSerialNumber,_field,_measurement,host
0,2025-06-24T18:00:05Z,52.112266,71556111,latitude,vega_flooding,owiot.de
1,2025-06-24T18:00:05Z,9.356095,71556111,longitude,vega_flooding,owiot.de

Map 2

SELECT Last("GNSSLatitude") AS "latitude", Last("GNSSLongitude") AS "longitude" FROM "coop_garden" WHERE ("devEUI"::tag = '7074140000ab4546')

grafik

InfluxDB UI

table,_time,_value,_field,_measurement,devEUI,deviceName,host,location,municipality,sensortype,usecase
0,2025-05-15T21:02:10Z,52.11185073852539,GNSSLatitude,coop_garden,7074140000ab4546,VEGA_Air41-2-OW,owiot.de,OW,Hameln,Pegelsensor_StraĂźe,Ueberschwemmung
1,2025-05-15T21:02:10Z,9.355592727661133,GNSSLongitude,coop_garden,7074140000ab4546,VEGA_Air41-2-OW,owiot.de,OW,Hameln,Pegelsensor_StraĂźe,Ueberschwemmung

Both use different InfluxDB databases (“buckets”).

What puzzles me a bit is the time stamp in Grafana in both cases :thinking:

It’s hard to examine the query result in Grafana,when there is no marker shown. As soon as I open the visualization in edit mode to look for the data, the marker appears and the data is as shown above!

As an Addition I did a small statistical test.
I setup a dashboard with 2 “Ochestra city map”-visualizations and 3 standard Grafana “Geomap” visualizations.
I reloaded the dashboard 20 times. Panels are numbered from top left to bottom right.

Ochestra city map

  • Markers on panel 1, 2 : 100%

I think we can call that reliable.

Geomap

  • Markers on panel 1 : 20%
  • Markers on panel 2 : 20%
  • Markers on panel 3 : 5%
  • Markers on panel 1, 2 : 5%
  • Markers on panel 1, 3 : 25%
  • Markers on panel 2, 3 : 25%
  • Markers on panel 1, 2, 3 : 0%

I think we can call that random.

1 Like

I think I found out, what causes the error message for the “Ochestra city map”

  • It happens only when I hover with the mouse over the position marker.
  • It disappears (map shown correctly again) when I press the (data) refresh button in Grafana or wait till the automatic refresh.
  • In the settings there was a value defined for Position layer/Properties (Select properties to be displayed) that I did not query. When I remove that entry the error message does no longer happen!
1 Like

@yosiasz , I think you pointing to the Orchestra City plugin helped a lot!
Thanks again.
I added the correct value to the query and have now a nice pop-up when hovering over the marker.

The only thing remaining is the wrong time-stamp. Do you have an idea what might cause that problem?

I see some odd looking date time stamps here wonder if that is the issue

I think that is only a question of character formats.
I exported a csv-file from the InfluxDB UI, opened it in LibreOffice Calc, removed unneeded entries, saved it and opened it again in a text editor.
At that time underscores (“_”) and hyphens (“-”) where coded as +AF8- and +AC0-.

If I open the csv-file after download directly with a text editor it looks for example like this:

,result,table,_start,_stop,_time,_value,_field,_measurement,devEUI,deviceName,host,location,municipality,sensortype,usecase
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T05:02:00Z,4.573709487915039,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T06:56:00Z,3.507211446762085,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T09:02:00Z,-4.471893310546875,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T11:00:00Z,5.042413711547852,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T12:54:00Z,58.2926025390625,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T13:00:00Z,58.29380798339844,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T13:06:00Z,58.421302795410156,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T13:22:00Z,58.32550811767578,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T13:28:00Z,58.23210525512695,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T13:36:00Z,58.4452018737793,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T13:48:00Z,58.37150192260742,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T14:02:00Z,58.49240493774414,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T14:10:00Z,4.306714057922363,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung
,,0,2025-06-27T03:10:04.154977119Z,2025-06-27T15:10:04.154977119Z,2025-06-27T14:56:00Z,3.976702928543091,ScaledValue,coop_garden,7074140000ab4546,VEGA_Air41-2-OW-Lora,owiot.de,OW,Bad Pyrmont,Pegelsensor_StraĂźe,Ueberschwemmung

Looks OK to me!

1 Like

I think I found out why I have the odd time stamp (where “01.01.1970, 01.00:00” is basically InfluxDB’s way to say: " I have no proper timestamp").
Here is my query in InfluxQL:

SELECT 
   last("GNSSLatitude") AS "latitude",
   last("GNSSLongitude") AS "longitude",
   last("ScaledValue") AS "Pegel" 
FROM "coop_garden" 
WHERE ("devEUI"::tag = '70xxxxxxxx46')

As far as I understood this query does not give a proper time stamp since “GNSSLatitude” and “GNSSLongitude” are only rarely written to data sets (when the sensor that provides the data, is moved). But “ScaledVale” ist written to each data set.
Hence

   last("GNSSLatitude") AS "latitude",
   last("GNSSLongitude") AS "longitude",

may provide data that is written to the database 3 month ago, whereas

  last("ScaledValue") AS "Pegel" 

might give data that is written 10 minutes ago.

I was not able to come up with a query that returns:

  • last latitude and longitude
  • last “ScaledValue”-value
  • proper timestamp, taken from the last “ScaledValue”-value

As far as I understand the “Orchestra City Map” plugin, I can not split data (longitude/ latitude, value to display in popup) for the popup (in the “Position Layer”) to different queries (“A”, “B”, “C”).

My workaround is now to switch of the time stamp in the popup (remove “Pop up Time” entry). Not perfect, but OK.

1 Like