diff --git a/charts/meep-dai/templates/onboardedapp-pv.yaml b/charts/meep-dai/templates/onboardedapp-pv.yaml index 792279e25240b45f08c33bebcca8bf35b8f9e4a9..b47834fba0b0bcca23955035c4243209486f7936 100644 --- a/charts/meep-dai/templates/onboardedapp-pv.yaml +++ b/charts/meep-dai/templates/onboardedapp-pv.yaml @@ -4,31 +4,28 @@ apiVersion: v1 metadata: name: meep-dai-onboardedapp-pv spec: - storageClassName: meep-dai-onboardedapp-sc + storageClassName: nfs + volumeMode: Filesystem capacity: storage: 100Mi accessModes: - - ReadWriteOnce - persistentVolumeReclaimPolicy: Retain - hostPath: - path: {{ .Values.onboardedapp.location }} - ---- -kind: StorageClass -apiVersion: storage.k8s.io/v1 -metadata: - name: meep-dai-onboardedapp-sc -provisioner: kubernetes.io/no-provisioner -volumeBindingMode: WaitForFirstConsumer + - ReadWriteMany + persistentVolumeReclaimPolicy: Recycle + mopuntOptions: + - hard + - nfsvers=4.1 + nfs: + server: 172.29.10.52 + path: /mnt/nfs/mec_sandbox --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: meep-dai-onboardedapp-pvc spec: - storageClassName: meep-dai-onboardedapp-sc + storageClassName: nfs accessModes: - - ReadWriteOnce + - ReadWriteMany resources: requests: storage: 100Mi diff --git a/go-apps/meep-federation/go.mod b/go-apps/meep-federation/go.mod index edae7659a8b565f4e5db1e7afccba7a70cd40b95..5e96e91fd29ad91583de2330ef475cb7343a5db6 100644 --- a/go-apps/meep-federation/go.mod +++ b/go-apps/meep-federation/go.mod @@ -1,9 +1,8 @@ -module github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-vis +module github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-federation go 1.12 require ( - github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-federation v0.0.0-00010101000000-000000000000 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-app-support-client v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-key-mgr v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-model v0.0.0 // indirect diff --git a/go-apps/meep-federation/server/federation.go b/go-apps/meep-federation/server/federation.go index a38e7dfc5656b4ec25b6342f18f292c0a062bee6..93dc96f4fccbf5434a519a327d43bb99fbbfd0cc 100644 --- a/go-apps/meep-federation/server/federation.go +++ b/go-apps/meep-federation/server/federation.go @@ -362,7 +362,7 @@ func Init() (err error) { fed_broker := strings.TrimSpace(os.Getenv("MEEP_BROKER")) log.Info("MEEP_BROKER: ", fed_broker) - // Get FED topic. E.g. ETSI/MEC/FED + // Get FED topic. E.g. ETSI/MEC/Federation fed_topic := strings.TrimSpace(os.Getenv("MEEP_TOPIC")) log.Info("MEEP_TOPIC: ", fed_topic) @@ -773,7 +773,7 @@ func systeminfoGET(w http.ResponseWriter, r *http.Request) { return } var systemInfos = []SystemInfo{} - for _, val := range systemInfopMap { + for _, val := range l { systemInfos = append(systemInfos, SystemInfo{ SystemId: val.SystemId, SystemName: val.SystemName, @@ -1299,6 +1299,11 @@ func fedNotify(msg string, systemId string) { log.Error(err.Error()) return } + log.Debug("fedNotify: systemInfo: ", systemInfo) + if systemInfo.SystemId == "" { + log.Error("fedNotify: Invalid SystemId value") + return + } if systemInfo.SystemId != localSystemInfo.SystemId { // Do not notify on our registration // Populate systemInfopMap diff --git a/go-apps/meep-federation/server/logger.go b/go-apps/meep-federation/server/logger.go index 7a2874cb0e3853d4036ad42dd713e8d6977aa1d7..c9ee684abe0ff93921ff5903e60b7c6c52c1575c 100644 --- a/go-apps/meep-federation/server/logger.go +++ b/go-apps/meep-federation/server/logger.go @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * AdvantEDGE V2X Information Service REST API + * AdvantEDGE Federation enablement APIs REST API * - * V2X Information Service is AdvantEDGE's implementation of [ETSI MEC ISG MEC030 V2XI API](.https://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/03.02.01_60/)

[Copyright (c) ETSI 2024](https://forge.etsi.org/etsi-forge-copyright-notice.txt)

**Micro-service**
[meep-vis](https://github.com/InterDigitalInc/AdvantEDGE/tree/master/go-apps/meep-vis)

**Type & Usage**
Edge Service used by edge applications that want to get information about radio conditions in the network

**Note**
AdvantEDGE supports a selected subset of VIS API endpoints (see below) and a subset of subscription types. + * Federation enablement APIs is AdvantEDGE's implementation of [ETSI GS MEC 040](.https://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/03.02.01_60/)

[Copyright (c) ETSI 2024](https://forge.etsi.org/etsi-forge-copyright-notice.txt)

**Micro-service**
[meep-federation](https://github.com/InterDigitalInc/AdvantEDGE/tree/master/go-apps/meep-federation)

**Type & Usage**
Edge Service used by edge applications that want to get information about radio conditions in the network

**Note**
AdvantEDGE supports a selected subset of Federation enablement APIs endpoints (see below) and a subset of subscription types. * * API version: 3.2.2 * Contact: AdvantEDGE@InterDigital.com diff --git a/go-packages/meep-federation-mgr/federation-mgr.go b/go-packages/meep-federation-mgr/federation-mgr.go index 29539250a8a9e19b7367ad7747ac184a8208b87f..53b18cda71a5d5d257ddf223aee54f89b2618694 100644 --- a/go-packages/meep-federation-mgr/federation-mgr.go +++ b/go-packages/meep-federation-mgr/federation-mgr.go @@ -35,7 +35,6 @@ type FederationMgr struct { connected bool mutex sync.Mutex message_broker message_broker_interface - // updateCb func(string, string) } // Enable profiling @@ -87,6 +86,7 @@ func (fm *FederationMgr) DeleteFederationMgr(systemId string) (err error) { } } + // Stop MQTT server fm.StopFedMessageBrokerServer() return nil diff --git a/go-packages/meep-federation-mgr/federation-mgr_test.go b/go-packages/meep-federation-mgr/federation-mgr_test.go index a99b79a1f742b3a194530dd9c4ccbd22d94cad93..1a06b8d8bed7e3a9aa6f711a685697ab00640dde 100644 --- a/go-packages/meep-federation-mgr/federation-mgr_test.go +++ b/go-packages/meep-federation-mgr/federation-mgr_test.go @@ -27,7 +27,7 @@ const ( // FIXME To be update with correct values at the end fmName = "pc" fmNamespace = "postgis-ns" v2xBrokerTest = "mqtt://172.29.10.56:1883" - v2xTopicTest = "ETSI/MEC/FED" + v2xTopicTest = "ETSI/MEC/Federation" systemInfo1 = "{\"SystemInfo\": {\"systemId\": \"systemId1\",\"systemName\": \"systemName1\",\"systemProvider\": \"systemProvider1\"}}" ) diff --git a/go-packages/meep-vis-traffic-mgr/grid_map.kml b/go-packages/meep-vis-traffic-mgr/grid_map.kml new file mode 100644 index 0000000000000000000000000000000000000000..c79c2e36116f7d486c1c2e315985b4e59d7fbe98 --- /dev/null +++ b/go-packages/meep-vis-traffic-mgr/grid_map.kml @@ -0,0 +1,3113 @@ + + + + KML Samples + 1 + MEC Sandbox grid map for V2X Predicted QoS + + + + + + + + + + + + normal + #__managed_style_164790AC5433A5EC62A0 + + + highlight + #__managed_style_2B6DB6F09833A5EC62A0 + + + + + + + + normal + #__managed_style_15FE54E51433A627B563 + + + highlight + #__managed_style_2FF57D309E33A627B563 + + + + + + + + + + + normal + #__managed_style_1BFC23CFD633A61BD679 + + + highlight + #__managed_style_23A16BBBC233A61BD679 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412251950392685,43.72791692204446,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412174768310321,43.72811929230551,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412082168640928,43.72832328456246,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412258292114533,43.72868578535503,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412667104878034,43.72951071398454,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41293395269218,43.73001857084243,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.413909436236601,43.7303324779033,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414845099169913,43.73085772186122,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415686272521507,43.73140827154441,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417035715607321,43.73150376752979,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41811951280293,43.73125813101358,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418496582896259,43.73105428551223,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417434617206712,43.7303285305292,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41761612246052,43.72994506278113,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418475552736686,43.73002455487853,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418583628695767,43.72901665897288,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419206675548777,43.72905121172964,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419276724805592,43.72859252750181,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421163717704948,43.72867443423857,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421329630272973,43.72830199194946,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421491550303836,43.72803665703435,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421782477046712,43.7277717542315,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422214271916112,43.72747620627226,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422504565367829,43.72723219488084,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420680151271053,43.7261019149033,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41861879465773,43.72467460835772,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417217361608561,43.72534442567208,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415396051104368,43.72626835861559,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.413504901522874,43.72721718804736,0 + + + + residential + fontvieille + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412251950392685,43.72791692204446,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412251950000019,43.72791691999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.411804027225728,43.72816131012375,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.410720479921626,43.72869765990779,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.409766648242966,43.72922566662531,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.408977429067094,43.72955314039889,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.409459702810654,43.73009170062428,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41079280207825,43.73123211336428,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.411498167531976,43.73156030213696,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.411981155210787,43.73165154471924,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412869529259951,43.73174631793645,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.413103672228885,43.73285905697139,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412628412999993,43.73348784000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412631065999973,43.73365316000002,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412836050000027,43.73390495000003,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412263138000026,43.73433529999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41232007199998,43.73447780000002,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41272860800001,43.73490302,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414536576000001,43.73596065999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414790898000021,43.73593182999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415021658000009,43.73579005000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415204773000013,43.73563441,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415460622999999,43.73559658999999,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415375119999998,43.73542449999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415019677000005,43.73510931,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415505957999993,43.73499287,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415866061000012,43.73534442999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416066182000023,43.73524041000002,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416378377999995,43.73509695000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416259374182514,43.73439937025293,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417151421038497,43.73438386838809,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417564606186713,43.73358803210659,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416856147336349,43.73251603862495,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415686273000004,43.73140827000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414845098999989,43.73085772000002,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.41390943600003,43.73033248,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412933952999974,43.73001857000001,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412667104999997,43.72951071,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412258291999985,43.72868578999997,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412082169,43.72832327999999,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412174767999988,43.72811928999998,0 + + + + residential + jardin-exotique + #__managed_style_0A8A9AD2A133A61BD679 + + 7.412251950000019,43.72791691999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417564606186713,43.73358803210659,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417151421038497,43.73438386838809,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416259374182514,43.73439937025293,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416378377999995,43.73509695000001,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.416066182000023,43.73524041000002,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415866061000012,43.73534442999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415505957999993,43.73499287,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415019677000005,43.73510931,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415375119999998,43.73542449999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415460622999999,43.73559658999999,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415204773000013,43.73563441,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415021658000009,43.73579005000001,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414790898000021,43.73593182999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.414536576000001,43.73596065999998,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.415512495190002,43.7366281498032,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417332072341214,43.73771758368893,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418873230204741,43.73877571241193,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419142110422192,43.73847712514304,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419021090393514,43.73811417743455,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419190679523593,43.7378587827692,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419850585061147,43.73757228474087,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420399074406829,43.73760555882292,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420457413890754,43.73725619517442,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420333798401728,43.73716498791435,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420396504373983,43.73684132416717,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418478149857243,43.73523598789635,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418202862931748,43.73477086158007,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.418225296647933,43.73449931632479,0 + + + + residential + les-moneghetti + #__managed_style_0A8A9AD2A133A61BD679 + + 7.417564606186713,43.73358803210659,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419443319956787,43.73918172628623,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420711067059981,43.74010724828849,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420983066374093,43.74041731339866,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422164563921272,43.74145159604973,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422365660410213,43.74139317947643,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422963231149204,43.74172088958904,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.424454433151444,43.74095922695706,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.425063636322633,43.74156588737877,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.425285892895499,43.74144445673576,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.424865442317685,43.74080338646932,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.425613023495128,43.74045279287922,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.424941293434653,43.73944198020815,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.424395101398494,43.73848096939489,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.423929644670732,43.73805215414122,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.423231978803315,43.73777774943043,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.42221285778588,43.73780232282162,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422015508723327,43.73778671960322,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.422389180165956,43.73757439549585,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421474633387888,43.73735181273111,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421120041137305,43.73753064467809,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.421060732428161,43.73768154109923,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420845094753505,43.73768028156472,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420834807360008,43.73832173525869,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.420237980909308,43.73878391054415,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419683665481549,43.73883072227395,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419744559019701,43.73908342955649,0 + + + + residential + monte-carlo-residential + #__managed_style_0A8A9AD2A133A61BD679 + + 7.419443319956787,43.73918172628623,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418496582999996,43.73105429000002,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418119513000012,43.73125813000001,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.417035715999987,43.73150377000003,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.417801369901946,43.73185473282849,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418584870898128,43.73219944105407,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.41894602891624,43.73247754691842,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419518816143889,43.73234860360077,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420266731735728,43.73216882154254,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420675309267695,43.73206553612534,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421452309732304,43.73190764162803,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422101110512265,43.73184404705347,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423140834328907,43.73192377454985,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424047577614303,43.7320563652538,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425024569979013,43.73221910461157,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426346364587159,43.73243408313061,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427069735704325,43.73259121517835,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427018687669246,43.7328563012876,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427387604873992,43.73294215353545,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427618602663808,43.73298365486792,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42776926194308,43.73316320459038,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427853246747372,43.73324229998455,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428018540822499,43.7332520054401,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428053072302474,43.73324868304703,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42804388704374,43.73321951005548,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428157779465874,43.73320226453772,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428184633997812,43.73315114504467,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428173864894223,43.73300777874597,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428472513453945,43.73288785590012,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428340523264967,43.73240940190094,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428355260733552,43.7320638817348,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428052465635798,43.73183164547587,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427719754216082,43.73126147430344,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426791008264177,43.73050535738137,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426140051754682,43.73059151647244,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425422876643704,43.73013799032908,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424569817414428,43.72959358275482,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423973082002464,43.72925388225838,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423253358018433,43.72951012971406,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422212030034432,43.72965249553761,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421803319220919,43.7301342399201,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.4215757625905,43.73035387586872,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420850294302137,43.73005520723608,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420497749571428,43.72995749603205,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420256165533474,43.73023629378087,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419449086174669,43.7308514985659,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418994657919904,43.73100689871077,0 + + + + commercial + monaco-ville + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418496582999996,43.73105429000002,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422504565000003,43.72723219,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422214272000005,43.72747621000001,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421491549999999,43.72803665999997,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421329629999991,43.72830198999998,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421163718000012,43.72867443000003,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419276724999997,43.72859253000001,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419206675999996,43.72905120999999,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418583629000004,43.72901666000001,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418475553000015,43.73002454999999,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.417616122000008,43.72994506000001,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.417434616999978,43.73032852999999,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418496582999996,43.73105429000002,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.418994657919904,43.73100689871077,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.419449086174669,43.7308514985659,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420256165533474,43.73023629378087,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420497749571428,43.72995749603205,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.420850294302137,43.73005520723608,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.4215757625905,43.73035387586872,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.421803319220919,43.7301342399201,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422212030034432,43.72965249553761,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423253358018433,43.72951012971406,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423973082002464,43.72925388225838,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42410389544898,43.72788678068092,0 + + + + commercial + port-de-fontvieille + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422504565000003,43.72723219,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422389180165956,43.73757439549585,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422015508723327,43.73778671960322,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42221285778588,43.73780232282162,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423231978803315,43.73777774943043,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.423929644670732,43.73805215414122,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424395101398494,43.73848096939489,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424941293434653,43.73944198020815,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425613023495128,43.74045279287922,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424865442317685,43.74080338646932,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425285892895499,43.74144445673576,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.425828559830128,43.74187221007835,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426106032131104,43.74224063802686,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426658721175235,43.74266479460832,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426896633526874,43.7431731275049,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42803338219397,43.74396886604708,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428124635598623,43.7446129050683,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428583886490758,43.74552649069036,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428656333382304,43.74601167227261,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429392567861366,43.74598470406469,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43019908502442,43.74636070222755,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430184824695862,43.74614711009478,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430041124596382,43.74587385687351,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430753592681651,43.74556027044869,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429606399867128,43.74462926967613,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428919084493753,43.74330607140439,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428472384727456,43.74215146410698,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428348136794614,43.74184188200886,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428045585745659,43.74156225878901,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428825052252918,43.74116848731372,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429136345726417,43.74099696525549,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429195694861344,43.74068140305448,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429711928682434,43.74035844243281,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430065086087994,43.74050878245765,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430434900666974,43.74034907418406,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430778838593892,43.74009471674051,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430384009548674,43.73886676523743,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43022855005086,43.73820539045028,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429532505751562,43.73764671224635,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428878098113083,43.73865563528157,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.427662318340127,43.7379168624471,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.426230067309811,43.73761808075336,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.424453465789913,43.73740626769943,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422574970752851,43.73746434232518,0 + + + + commercial + monte-carlo-commercial + #__managed_style_0AAA7B0B1F33A627B563 + + 7.422389180165956,43.73757439549585,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428656333382304,43.74601167227261,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428722045447174,43.7461767820448,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428648594850229,43.74627290660531,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428783307585796,43.7466216757588,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429298023348787,43.74683410367367,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.42961314062544,43.74766541738203,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429786566745364,43.74808335116288,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430419415423007,43.74823987563861,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430672477144924,43.74896279035944,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.431773382431976,43.74883377927693,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.432308862640071,43.7490681523884,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43316111345729,43.74937106151356,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.433725337090085,43.74978180687035,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.433943330463757,43.74963700122542,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.434841622546875,43.7498777721828,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.435290043812335,43.74994747731498,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.435960931770083,43.75000309948296,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.437439107288091,43.75113650953647,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.436779172106549,43.75154669043439,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.436858030829681,43.75192057309162,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.437391376350028,43.75182467783615,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.438374318142489,43.75150853061132,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.438685373240627,43.75122346946171,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.438738903210624,43.7508608724867,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43867174315125,43.7504776030522,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43862117599273,43.75003531970896,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.438273687506765,43.74961068461203,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.436738220838672,43.74901129042753,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.436477587521264,43.74900251993036,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.434169656874509,43.74783466027769,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.431783826666114,43.74643068462912,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430753592681651,43.74556027044869,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430041124596382,43.74587385687351,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.430184824695862,43.74614711009478,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.43019908502442,43.74636070222755,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.429392567861366,43.74598470406469,0 + + + + commercial + la-rousse + #__managed_style_0AAA7B0B1F33A627B563 + + 7.428656333382304,43.74601167227261,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417151421038497,43.73438386838809,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418225296647933,43.73449931632479,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418202862931748,43.73477086158007,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418478149857243,43.73523598789635,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420396504373983,43.73684132416717,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421474633387888,43.73735181273111,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.422389180165956,43.73757439549585,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.422574970752851,43.73746434232518,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.424453465789913,43.73740626769943,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.426230067309811,43.73761808075336,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427662318340127,43.7379168624471,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428038293652051,43.73810579370274,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428415582222376,43.73830218127022,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428878098113083,43.73865563528157,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429532505751562,43.73764671224635,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.43177958793355,43.73684077032769,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.432454305187117,43.73631487190695,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428867685250811,43.73319793548649,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428472513453945,43.73288785590012,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428173864894223,43.73300777874597,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428184633997812,43.73315114504467,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428157779465874,43.73320226453772,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.42804388704374,43.73321951005548,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428053072302474,43.73324868304703,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428018540822499,43.7332520054401,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427853246747372,43.73324229998455,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.42776926194308,43.73316320459038,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427618602663808,43.73298365486792,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427387604873992,43.73294215353545,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427018687669246,43.7328563012876,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.427069735704325,43.73259121517835,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.426346364587159,43.73243408313061,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.425024569979013,43.73221910461157,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.424047577614303,43.7320563652538,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.423140834328907,43.73192377454985,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.422101110512265,43.73184404705347,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421452309732304,43.73190764162803,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420675309267695,43.73206553612534,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420266731735728,43.73216882154254,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419518816143889,43.73234860360077,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.41894602891624,43.73247754691842,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418584870898128,43.73219944105407,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417801369901946,43.73185473282849,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417035715999987,43.73150377000003,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.415686273000004,43.73140827000001,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.416856147336349,43.73251603862495,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417564606186713,43.73358803210659,0 + + + + coastal + la-condamine + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.417151421038497,43.73438386838809,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420396504373983,43.73684132416717,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420333798401728,43.73716498791435,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420457413890754,43.73725619517442,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420399074406829,43.73760555882292,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419850585061147,43.73757228474087,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419190679523593,43.7378587827692,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419021090393514,43.73811417743455,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419142110422192,43.73847712514304,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.418873230204741,43.73877571241193,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419443319956787,43.73918172628623,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419744559019701,43.73908342955649,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.419683665481549,43.73883072227395,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420237980909308,43.73878391054415,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420834807360008,43.73832173525869,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420845094753505,43.73768028156472,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421060732428161,43.73768154109923,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421120041137305,43.73753064467809,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.421474633387888,43.73735181273111,0 + + + + coastal + ravin-de-sainte-devote + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.420396504373983,43.73684132416717,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430858271494349,43.73961431812234,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430778838593892,43.74009471674051,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430434900666974,43.74034907418406,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430065086087994,43.74050878245765,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429711928682434,43.74035844243281,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429195694861344,43.74068140305448,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429136345726417,43.74099696525549,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428825052252918,43.74116848731372,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428045585745659,43.74156225878901,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428348136794614,43.74184188200886,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428472384727456,43.74215146410698,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.428919084493753,43.74330607140439,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.429606399867128,43.74462926967613,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430753592681651,43.74556027044869,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.431783826666114,43.74643068462912,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.434169656874509,43.74783466027769,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.436477587521264,43.74900251993036,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.436738220838672,43.74901129042753,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.438273687506765,43.74961068461203,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.43862117599273,43.75003531970896,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.439238468871643,43.74927471683961,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.439732881877939,43.74838219752311,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.439933293586867,43.7464977152092,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.437950022030025,43.74612598069747,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.432984972294214,43.74424091282706,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.434031120177556,43.74238402666636,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.432899625820466,43.7412625274158,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.431666316590344,43.73948829860639,0 + + + + coastal + larvotto + #__managed_style_0FD2FC8D5A33A5EC62A0 + + 7.430858271494349,43.73961431812234,0 + + + + diff --git a/go-packages/meep-vis-traffic-mgr/traffic-mgr.go b/go-packages/meep-vis-traffic-mgr/traffic-mgr.go index 202d76f8889f39a990403b8dc1d4f532f721bb8b..bac4448ade98564a9d4948d0faa7f9d8aee3b7f5 100644 --- a/go-packages/meep-vis-traffic-mgr/traffic-mgr.go +++ b/go-packages/meep-vis-traffic-mgr/traffic-mgr.go @@ -806,60 +806,6 @@ func (tm *TrafficMgr) GetPoaCategory(longitude float32, latitude float32) (categ return category, err } -func (tm *TrafficMgr) InitializeV2xMessageDistribution(v2xPoaList []string, poaNameList []string, ecgi_s []string, location_s [][]float32) (err error) { - log.Debug(">>> InitializeV2xMessageDistribution: v2xPoaList: ", v2xPoaList) - log.Debug(">>> InitializeV2xMessageDistribution: poaNameList: ", poaNameList) - log.Debug(">>> InitializeV2xMessageDistribution: ecgi_s: ", ecgi_s) - log.Debug(">>> InitializeV2xMessageDistribution: location_s: ", location_s) - - // Validate input - if poaNameList == nil { - err = errors.New("Missing POA Name List") - return err - } - if ecgi_s == nil { - err = errors.New("Missing ECGIs") - return err - } - - if len(ecgi_s) != 0 { - cellName2CellIdMap = make(map[string]string, len(ecgi_s)) - cellId2CellNameMap = make(map[string]string, len(ecgi_s)) - v2xPoaListMap = make(map[string]string, len(ecgi_s)) - cellId2LocationMap = make(map[string][]float32, len(ecgi_s)) - for i := 0; i < len(ecgi_s); i++ { - if ecgi_s[i] != "" { - idx := sort.Search(len(tm.poa_list), func(j int) bool { return poaNameList[i] <= tm.poa_list[j] }) - if idx < len(tm.poa_list) { - cellName2CellIdMap[poaNameList[i]] = ecgi_s[i] - cellId2LocationMap[ecgi_s[i]] = location_s[i] - cellId2CellNameMap[ecgi_s[i]] = poaNameList[i] - // FIXME FSCOM Build the list of V2X compliant PoA - res := func() bool { - for _, s := range v2xPoaList { - if s == poaNameList[i] { - return true - } - } // End of 'for' statement - return false - }() - if res { - v2xPoaListMap[ecgi_s[i]] = poaNameList[i] - } - } - } - } // End of 'for' statement - log.Info("InitializeV2xMessageDistribution: cellName2CellIdMap: ", cellName2CellIdMap) - log.Info("InitializeV2xMessageDistribution: cellId2LocationMap: ", cellId2LocationMap) - log.Info("InitializeV2xMessageDistribution: cellId2CellNameMap: ", cellId2CellNameMap) - log.Info("InitializeV2xMessageDistribution: v2xPoaListMap: ", v2xPoaListMap) - } else { - log.Warn("InitializeV2xMessageDistribution: V2X message distribution ECGI list is empty") - } - - return nil -} - // PopulatePoaLoad - Populate the Traffic Load table func (tm *TrafficMgr) PopulatePoaLoad(poaNameList []string, gpsCoordinates [][]float32) (err error) { log.Debug(">>> PopulatePoaLoad: poaNameList: ", poaNameList) @@ -1396,6 +1342,60 @@ func (tm *TrafficMgr) GetInfoPc5(params []string, num_item int) (proInfoPc5 Pc5P return proInfoPc5, nil } +func (tm *TrafficMgr) InitializeV2xMessageDistribution(v2xPoaList []string, poaNameList []string, ecgi_s []string, location_s [][]float32) (err error) { + log.Debug(">>> InitializeV2xMessageDistribution: v2xPoaList: ", v2xPoaList) + log.Debug(">>> InitializeV2xMessageDistribution: poaNameList: ", poaNameList) + log.Debug(">>> InitializeV2xMessageDistribution: ecgi_s: ", ecgi_s) + log.Debug(">>> InitializeV2xMessageDistribution: location_s: ", location_s) + + // Validate input + if poaNameList == nil { + err = errors.New("Missing POA Name List") + return err + } + if ecgi_s == nil { + err = errors.New("Missing ECGIs") + return err + } + + if len(ecgi_s) != 0 { + cellName2CellIdMap = make(map[string]string, len(ecgi_s)) + cellId2CellNameMap = make(map[string]string, len(ecgi_s)) + v2xPoaListMap = make(map[string]string, len(ecgi_s)) + cellId2LocationMap = make(map[string][]float32, len(ecgi_s)) + for i := 0; i < len(ecgi_s); i++ { + if ecgi_s[i] != "" { + idx := sort.Search(len(tm.poa_list), func(j int) bool { return poaNameList[i] <= tm.poa_list[j] }) + if idx < len(tm.poa_list) { + cellName2CellIdMap[poaNameList[i]] = ecgi_s[i] + cellId2LocationMap[ecgi_s[i]] = location_s[i] + cellId2CellNameMap[ecgi_s[i]] = poaNameList[i] + // FIXME FSCOM Build the list of V2X compliant PoA + res := func() bool { + for _, s := range v2xPoaList { + if s == poaNameList[i] { + return true + } + } // End of 'for' statement + return false + }() + if res { + v2xPoaListMap[ecgi_s[i]] = poaNameList[i] + } + } + } + } // End of 'for' statement + log.Info("InitializeV2xMessageDistribution: cellName2CellIdMap: ", cellName2CellIdMap) + log.Info("InitializeV2xMessageDistribution: cellId2LocationMap: ", cellId2LocationMap) + log.Info("InitializeV2xMessageDistribution: cellId2CellNameMap: ", cellId2CellNameMap) + log.Info("InitializeV2xMessageDistribution: v2xPoaListMap: ", v2xPoaListMap) + } else { + log.Warn("InitializeV2xMessageDistribution: V2X message distribution ECGI list is empty") + } + + return nil +} + /* * PublishMessageOnMessageBroker publish the provided V2X message (e.g. CA message) on brocker server (e.g. MQTT) * @param {string} msgContent The message to publish