Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Mostrar la dirección de un cliente y el proveedor se orienta alrededor de esta dirección del proveedor.

Hola
Somos una empresa constructora. Ahora mismo no puedo resolver el siguiente problema:

Tengo dos conjuntos de datos, uno para Clientes y otro para Proveedores. Mi gente quiere elegir un cliente en una mesa y ver la dirección de este cliente en el centro. El resto de los clientes no deben ser vistos en este momento. Después quieren buscar diferentes tipos de proveedores y dónde se encuentran. Por ejemplo, quieren ver a todos los diferentes proveedores de techos alrededor de este cliente. ¿Es esto posible y puede enviarme un tutorial para esto? También dibujo a continuación una muestra para mi problema:

kletterbilder_0-1628168351974.png

¡Las siguientes 2 discusiones no me ayudaron!

Resuelto: ¿Puedo visualizar dos tablas de ubicación en un mapa? y... - Comunidad microsoft power bi

Resuelto: Re: Asignar varios conjuntos de datos en el mismo mapa - Microsoft Power BI Community

¡Datos de muestra que encontrará a continuación!

Tuyo Christoph

1 ACCEPTED SOLUTION

Ahora encontré finalmente las soluciones para resolver todos mis problemas. El informe final se ve así

kletterbilder_0-1631734881652.png

Puedo elegir un cliente (alemán "Kunde") en el lado derecho y cambiar la slicer y ajustar la distancia entre 0 y 2000 km.

Si selecciono un cliente. Todos los demás clientes desaparecerán del mapa y la tabla a continuación y la distancia a todos nuestros proveedores se calculará con una medida en PowerBI. Eso funciona con el Método del Gran Círculo. Por favor, tenga cuidado con la diferencia entre Radian y Degree. Tengo toda la latitud y longitud en Grado. Hasta ahora tengo que multiplicar el Grado * PI() /180. Lo que puedes ver a continuación. Si no, las distancias entre los clientes y todos los proveedores serán todas incorrectas.

Medir "Distancia":

Distancia =
VAR Custo = SELECTEDVALUE(Clientes[PROJECTNAME])
VAR lat1 = MIN(Combinado[latitud])*PI()/180
VAR lat2 = SELECTEDVALUE(Clientes[latitud])*PI()/180
VAR lon1 = MIN(Combinado[Longitud])*PI()/180
VAR lon2 = SELECTEDVALUE(Clientes[longitud])*PI()/180
DEVOLUCIÓN
Si(
ISBLANK(Costo),
0,
ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lon1))*6371
)

El resultado se ve así. Si aumento el círculo de 50 km a más. Voy a ver más proveedores alrededor de este cliente.

kletterbilder_2-1631735399552.png

El proyecto se puede ver en el medio con un círculo más grande (lo muestro con una flecha verde en la imagen en la parte superior). Esto también lo resolví con mi medida "Tamaño":

Tamaño =
VAR Custo = SELECTEDVALUE(Clientes[PROJECTNAME])
VAR Combi = MIN(Combinado[PROJECTNAME])
VAR Projecttype = MIN(Combinado[LINEOFBUSINESSID])
DEVOLUCIÓN
SI(
Custo = Combi && Projecttype ="Proyecto",
2,1)

Las tablas que uso se ven así. Destaqué las medidas que definí:

kletterbilder_3-1631735515969.png

La medida "Filtro de medida":

Filtro de medida =
VAR MinValue = MIN(Distancia[Distancia (en km)])
VAR MaxValue = MAX(Distancia[Distancia (en km)])
VAR CurrentMeasureValue = Combinado[Distancia]
DEVOLUCIÓN
IF(ISBLANK(SELECTEDVALUE(Customers[PROJECTNAME])),
1,
SI(
CurrentMeasureValue >= MinValue && CurrentMeasureValue <= MaxValue,
1,
0
))
y medir "Tipo":
Tipo =
VAR Custo = SELECTEDVALUE(Clientes[PROJECTNAME])
Tamaño VAR = Combinado[Tamaño]
VAR Projecttype = MIN(Combinado[LINEOFBUSINESSID])
DEVOLUCIÓN
SI(
ISBLANK(Costo),
Tipo de proyecto,
SI(
Projecttype = "Projekt" && size = 2,
Tipo de proyecto,
SI(
Proyectotipo <> "Projekt",
Tipo de proyecto,
"")))

Ambas tablas "Clientes" y "Proveedores" juntas en la tabla "Combinado" con la función en PowerQuery - "Anexar consultas".

La tabla "Entfernung" (significa Distancias en alemán) es bastante fácil en DAX. Esto se utiliza para hacer posible el control deslizante para el ajuste de distancia, ¡porque no puede conectar un control deslizante a una medida!

kletterbilder_4-1631735673633.png

Debido a que no tengo todos los datos de longitud y latitud para todas las direcciones, encontré una descripción de API para https://www.bingmapsportal.com/.

La función se ve así y funciona perfectamente. Aquí también puede encontrar un video de YouTube con más detalles: Función de latitud y longitud de Power BI | API de mapas de Bing - YouTube

Solo tienes que cambiar YOURAPIKEY con tu clave API de BingMaps. Para empezar tienes que suscribirte allí.

dejar

FindLatLong = (ubicación) = >

dejar
Source = Xml.Tables(Web.Contents("http://dev.virtualearth.net/REST/v1/Locations/" & location & "?o=xml&key=YOURAPIKEY")),
ResourceSets = Origen{0}[ResourceSets],
ResourceSet = ResourceSets{0}[ResourceSet],
Recursos = ResourceSet{0}[Recursos],
Ubicación = Recursos{0}[Ubicación],
Punto = Ubicación{0}[Punto]
en
Punto

en

FindLatLong

Uso el mapa de Azure como el objeto visual de mapas. Puedo ver este mapa perfecto en el escritorio de PowerBI. El último problema que tengo es que si subo el informe a PowerBI Online no puedo hacer que aparezca en Teams. Aquí recibo el siguiente mensaje de error en alemán:

kletterbilder_0-1631737931575.png

Supongo que este es un problema con nuestro firewall. Todavía estoy tratando de arreglar esto con nuestro departamento de TI.

El problema tal vez se describe aquí:

Introducción a la | visual de Azure Maps Power BI Documentos de Microsoft

Gracias a Ibendlin. Me ayudaste mucho.

View solution in original post

20 REPLIES 20
Syndicate_Admin
Administrator
Administrator

Hacer algunos progresos

lbendlin_0-1630631944991.png

Si bien no puede ocultar / mostrar las ubicaciones a través de medidas, puede influir en el tamaño de sus burbujas. Por lo tanto, podemos usar el control de tamaño para mostrar al cliente seleccionado en el mapa y los tres proveedores más cercanos.

Para esto último necesitamos hacer los siguientes pasos

- crear una variable de tabla con todas las ubicaciones

- marcar las ubicaciones como excluidas si son ubicaciones de clientes y no coinciden con el cliente de la segmentación de datos (establecer el tamaño en 1)

- marque la ubicación del cliente como incluida si coincide con la segmentación de datos (establezca el tamaño en 20)

- crear un RANKX de todas las ubicaciones restantes y su distancia al cliente seleccionado

- Si la ubicación actual está en los tres primeros, establezca su tamaño en 15, de lo contrario, estadlo en 1

lbendlin_1-1630634221581.png

size = 
var n = SELECTEDVALUE(Combined[Name])
var s = SELECTCOLUMNS(FILTER(All(Combined),Combined[Type]="Supplier"),"N",Combined[Name],"lat",Combined[latitude],"lon",Combined[longitude])
var t = ADDCOLUMNS(s,"dist",abs([lat]-SELECTEDVALUE(Customers[latitude]))+abs([lon]-SELECTEDVALUE(Customers[longitude])))
var u = ADDCOLUMNS(t,"r",RANKX(t,[dist],,ASC))
var v = filter(u,[N]=n)
return switch(TRUE(),SELECTEDVALUE(Combined[Name])=SELECTEDVALUE(Customers[Name]),20,CONCATENATEX(v,[r]) in {"1","2","3"},15,1)

Hola

Gracias. Esto se acerca mucho. Estamos en el camino correcto.

Sólo tengo una pregunta más.

¿Es posible hacer ajustable la siguiente parte en el código? Una rebanadora sería perfecta. Ahora mismo esta parte es estática. Seguro que puedo añadir más pero quiero que esto sea ajustable para el usuario.

kletterbilder_0-1630648402549.png

Gracias y les deseo un agradable y esperanzador fin de semana soleado.

Aquí tienes

lbendlin_0-1630694107502.png

Que tengas un buen fin de semana.

Gracias.

Esto funciona para mí. El único problema con el conjunto de datos es que los clientes 2 y 3 no se muestran en el mapa. Paralelamente también pruebo el concepto con un conjunto de datos más grande. Aquí tengo el mismo problema. Pero no puedo entender por qué. Los datos largos y lat están en el conjunto de datos del cliente 2 y 3.

Ahora encontré finalmente las soluciones para resolver todos mis problemas. El informe final se ve así

kletterbilder_0-1631734881652.png

Puedo elegir un cliente (alemán "Kunde") en el lado derecho y cambiar la slicer y ajustar la distancia entre 0 y 2000 km.

Si selecciono un cliente. Todos los demás clientes desaparecerán del mapa y la tabla a continuación y la distancia a todos nuestros proveedores se calculará con una medida en PowerBI. Eso funciona con el Método del Gran Círculo. Por favor, tenga cuidado con la diferencia entre Radian y Degree. Tengo toda la latitud y longitud en Grado. Hasta ahora tengo que multiplicar el Grado * PI() /180. Lo que puedes ver a continuación. Si no, las distancias entre los clientes y todos los proveedores serán todas incorrectas.

Medir "Distancia":

Distancia =
VAR Custo = SELECTEDVALUE(Clientes[PROJECTNAME])
VAR lat1 = MIN(Combinado[latitud])*PI()/180
VAR lat2 = SELECTEDVALUE(Clientes[latitud])*PI()/180
VAR lon1 = MIN(Combinado[Longitud])*PI()/180
VAR lon2 = SELECTEDVALUE(Clientes[longitud])*PI()/180
DEVOLUCIÓN
Si(
ISBLANK(Costo),
0,
ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lon1))*6371
)

El resultado se ve así. Si aumento el círculo de 50 km a más. Voy a ver más proveedores alrededor de este cliente.

kletterbilder_2-1631735399552.png

El proyecto se puede ver en el medio con un círculo más grande (lo muestro con una flecha verde en la imagen en la parte superior). Esto también lo resolví con mi medida "Tamaño":

Tamaño =
VAR Custo = SELECTEDVALUE(Clientes[PROJECTNAME])
VAR Combi = MIN(Combinado[PROJECTNAME])
VAR Projecttype = MIN(Combinado[LINEOFBUSINESSID])
DEVOLUCIÓN
SI(
Custo = Combi && Projecttype ="Proyecto",
2,1)

Las tablas que uso se ven así. Destaqué las medidas que definí:

kletterbilder_3-1631735515969.png

La medida "Filtro de medida":

Filtro de medida =
VAR MinValue = MIN(Distancia[Distancia (en km)])
VAR MaxValue = MAX(Distancia[Distancia (en km)])
VAR CurrentMeasureValue = Combinado[Distancia]
DEVOLUCIÓN
IF(ISBLANK(SELECTEDVALUE(Customers[PROJECTNAME])),
1,
SI(
CurrentMeasureValue >= MinValue && CurrentMeasureValue <= MaxValue,
1,
0
))
y medir "Tipo":
Tipo =
VAR Custo = SELECTEDVALUE(Clientes[PROJECTNAME])
Tamaño VAR = Combinado[Tamaño]
VAR Projecttype = MIN(Combinado[LINEOFBUSINESSID])
DEVOLUCIÓN
SI(
ISBLANK(Costo),
Tipo de proyecto,
SI(
Projecttype = "Projekt" && size = 2,
Tipo de proyecto,
SI(
Proyectotipo <> "Projekt",
Tipo de proyecto,
"")))

Ambas tablas "Clientes" y "Proveedores" juntas en la tabla "Combinado" con la función en PowerQuery - "Anexar consultas".

La tabla "Entfernung" (significa Distancias en alemán) es bastante fácil en DAX. Esto se utiliza para hacer posible el control deslizante para el ajuste de distancia, ¡porque no puede conectar un control deslizante a una medida!

kletterbilder_4-1631735673633.png

Debido a que no tengo todos los datos de longitud y latitud para todas las direcciones, encontré una descripción de API para https://www.bingmapsportal.com/.

La función se ve así y funciona perfectamente. Aquí también puede encontrar un video de YouTube con más detalles: Función de latitud y longitud de Power BI | API de mapas de Bing - YouTube

Solo tienes que cambiar YOURAPIKEY con tu clave API de BingMaps. Para empezar tienes que suscribirte allí.

dejar

FindLatLong = (ubicación) = >

dejar
Source = Xml.Tables(Web.Contents("http://dev.virtualearth.net/REST/v1/Locations/" & location & "?o=xml&key=YOURAPIKEY")),
ResourceSets = Origen{0}[ResourceSets],
ResourceSet = ResourceSets{0}[ResourceSet],
Recursos = ResourceSet{0}[Recursos],
Ubicación = Recursos{0}[Ubicación],
Punto = Ubicación{0}[Punto]
en
Punto

en

FindLatLong

Uso el mapa de Azure como el objeto visual de mapas. Puedo ver este mapa perfecto en el escritorio de PowerBI. El último problema que tengo es que si subo el informe a PowerBI Online no puedo hacer que aparezca en Teams. Aquí recibo el siguiente mensaje de error en alemán:

kletterbilder_0-1631737931575.png

Supongo que este es un problema con nuestro firewall. Todavía estoy tratando de arreglar esto con nuestro departamento de TI.

El problema tal vez se describe aquí:

Introducción a la | visual de Azure Maps Power BI Documentos de Microsoft

Gracias a Ibendlin. Me ayudaste mucho.

Como mencioné, comparten exactamente el mismo lat / lon con los proveedores. Cambie sus datos para ser más realista.

Syndicate_Admin
Administrator
Administrator

Gracias por actualizar los datos de muestra. Lo veré más tarde. Mientras tanto, puede buscar la fórmula (DAX) para calcular la distancia del Gran Círculo.

Hola

descubrí el formulario para la distancia entre 2 puntos y probé más.

Pero no estoy seguro de si quieres dirigirte:

= Table.AddColumn(#"Changed Type", "Entfernung", each Number.Acos(Number.Sin([Latitude])*Number.Sin(48.1659)+Number.Cos([Latitude])*Number.Cos(48.1659)*Number.Cos(11.5371-[Longitud]))*6378.388*Number.PI/180)

El resultado es en km si el sistema calcula con grado en lugar de radian.

Mi resultado actual es el siguiente:

kletterbilder_0-1630594038145.png

También lo probé con DAX

kletterbilder_1-1630598088758.png

Distancia2 = ACOS(SIN(Combinado[Latitud])*SIN(SELECTEDVALUE(Clientes[Latitud]))+COS(Combinado[Latitud])*COS(SELECTEDVALUE(Clientes[Latitud]))*COS(SELECTEDVALUE(Clientes[Longitud])-Combinado[Longitud]))*6378.388*PI()/180

El siguiente paso será identificar al cliente seleccionado, luego calcular la distancia a todos los socios y luego elegir los tres socios principales a través de RANKX.

Es un tema interesante, desafortunadamente no puedo dedicar mucho tiempo en este momento. Te avisaré cuando haya tenido tiempo.

Syndicate_Admin
Administrator
Administrator

No @kletterbilder ,

¿Se ha resuelto su problema? Si se resuelve, por favor marque una respuesta que le sea útil.

Si el problema sigue sin resolverse, proporcione información detallada del error o el resultado esperado que espera. Hágamelo saber de inmediato, esperando su respuesta.

Saludos

Winniz

¡Datos de muestra!

ClienteUbicaciónKindOfAdressCalleCÓDIGO POSTALCIUDADPAÍS
Cliente1Alemania, 80939ProyectoGundelkoferstraße 580939MúnichAlemania
Cliente2Alemania, 80995ProyectoPenckstr. 480995MúnichAlemania
Cliente3Alemania, 80995ProyectoLeuchsstr. 11 a80995MúnichAlemania
Cliente4Alemania, 81737ProyectoUnterbiberger Strasse 3181737MúnichAlemania
Cliente6Alemania, 81809ProyectoHeinrich-Böll-Strasse 481809MúnichAlemania
Cliente7Alemania, 81825ProyectoKönigsseestraße 2081825MúnichAlemania

ProveedorUbicaciónKindOfAdressCalleCÓDIGO POSTALCIUDADPAÍS
Materiallieferant1Alemania, 81379MateriallieferantAidenbachstraße 5281379MúnichAlemania
Architekt1Alemania, 80995ArquitectoPaul-Preuß-Straße 280995MúnichAlemania
Materiallieferant2Alemania, 81829MateriallieferantHanns-Schwindt-Str. 281829MúnichAlemania
Baustelleneinrichtung1Alemania, 81547Instalaciones del sitioPeißenbergstraße 1781547MúnichAlemania
Materiallieferant3Alemania, 80809MateriallieferantBirnauer Strasse 480809MúnichAlemania
Architekt2Alemania, 81829ArquitectoWilly-Brandt-Allee 1081829MúnichAlemania
Materiallieferant4Alemania, 80637MateriallieferantWaisenhausstr. 480637MúnichAlemania
Baustelleneinrichtung2Alemania, 81925Instalaciones del sitioArabellastrasse 481925MúnichAlemania
Materiallieferant5Alemania, 81249MateriallieferantJakob Baumann Strasse 281249MúnichAlemania

Syndicate_Admin
Administrator
Administrator

Así es como trataría de hacerlo

- elija las columnas de las tablas de clientes y proveedores que se necesitan para el mapa visual. Incluya la columna de tipo de cuenta para que pueda tener diferentes colores de pin

- crear una nueva tabla calculada como una UNIÓN entre estos conjuntos de columnas.

- alimentar el mapa visual de la tabla unionada, no de las tablas originales.

no, la UNIÓN realmente sólo crea una tabla estática. No se ve afectado por las opciones de filtro.

Es posible que pueda engañarlo estableciendo la ubicación del cliente en BLANK() para los clientes que no están seleccionados en la tabla original. Déjenme intentarlo.

Hola

gracias por sus intentos. No tengo preferencia por lo visual. Probé con diferentes. Espero que funcione con Free of charge Visuals. Yo preferiría uno de estos.

Gracias.

Aquí hay un nuevo enfoque. Tener una mesa combinada con clientes y proveedores, y también dos mesas separadas desconectadas para las cortadoras.

El plan es crear una medida que vea si se selecciona un solo cliente y, a continuación, filtrar la tabla combinada a ese cliente y a los socios más cercanos.

Problema: Sus direcciones son ambiguas y no se pueden usar en la mayoría de los mapas. Para evitar las ambigüedades y calcular las distancias también necesitamos Latitud/Longitud.

Hola

gracias por su rápida respuesta. El problema con la ubicación correcta que resolví antes y yo

lo cambió en su archivo. Aquí encuentras el enlace del video

Ubicaciones de mapa incorrectas en Power BI y cómo solucionarlo - YouTube

Pero todavía no puedo ver su solución, que puedo elegir un cliente y el suplier arround?

kletterbilder_0-1630337594877.png

PD: Quería volver a subir el archivo pbix, como tú. ¿Pero no funciona?

Necesitamos Latitud y Longitud para calcular la distancia del Gran Círculo.

Desafortunadamente, la carga de archivos solo es posible para superus usuarios.

Hola

por la presente te envío el punto central del código postal de Munich con latitud y latitud. Tengo esta lista también para toda Alemania y puedo mapearla en el futuro si su solución funciona. Tengo curiosidad por su solución. No pude ver ninguna diferencia en mi solución.

código postalciudadlatitudlongitud
80331Múnich11,572199448,1378593
80333Múnich11,568218448,1468565
80335Múnich11,552018648,1471265
80336Múnich11,55398848,134305
80337Múnich11,558981248,1283121
80339Múnich11,538065348,1379361
80469Múnich11,572236748,1299013
80538Múnich11,590835348,1464634
80539Múnich11,581743748,146632
80634Múnich11,529439848,1511242
80636Múnich11,542819848,1542354
80637Múnich11,537090548,1659187
80638Múnich11,505888248,1633227
80639Múnich11,508792848,1527916
80686Múnich11,511953748,1342723
80687Múnich11,505909348,1432007
80689Múnich11,485333748,1331355
80796Múnich11,569470748,1646491
80797Múnich11,556760348,1637607
80798Múnich11,565641848,157168
80799Múnich11,574364148,1535962
80801Múnich11,578659248,1595621
80802Múnich11,592261348,1607759
80803Múnich11,580311848,1659026
80804Múnich11,575879148,17393
80805Múnich11,606642848,1757667
80807Múnich11,584582348,1859744
80809Múnich11,552174748,1808528
80933Múnich11,557141748,2179463
80935Múnich11,552949448,2002579
80937Múnich11,575012248,2113313
80939Múnich11,616642548,2080563
80992Múnich11,517267748,1763994
80993Múnich11,519447948,188144
80995Múnich11,51624148,2191299
80997Múnich11,482648748,1949517
80999Múnich11,452312848,1926955
81241Múnich11,4636648,1430311
81243Múnich11,436725348,1475698
81245Múnich11,442117348,1625235
81247Múnich11,467532148,1688216
81249Múnich11,404449448,1675378
81369Múnich11,530240648,1121952
81371Múnich11,547245148,1172998
81373Múnich11,529938648,1246112
81375Múnich11,485210148,1213817
81377Múnich11,492954648,1131369
81379Múnich11,53192848,1021508
81475Múnich11,480452548,0928777
81476Múnich11,495329348,0912289
81477Múnich11,507593248,0852591
81479Múnich11,523443848,0798162
81539Múnich11,588696448,112694
81541Múnich11,58650948,1223744
81543Múnich11,563428548,1119033
81545Múnich11,557034348,089909
81547Múnich11,575061548,1027772
81549Múnich11,600492448,0994684
81667Múnich11,599194448,1324385
81669Múnich11,600759748,1215281
81671Múnich11,617963148,1235767
81673Múnich11,630188848,1301745
81675Múnich11,60237248,1409528
81677Múnich11,631827448,1402794
81679Múnich11,608160848,1495544
81735Múnich11,639859348,1118932
81737Múnich11,632818948,1005994
81739Múnich11,659746648,0902065
81825Múnich11,660382348,120573
81827Múnich11,689155448,1088248
81829Múnich11,687664648,1354537
81925Múnich11,622493948,1637603
81927Múnich11,637324148,1600676
81929Múnich11,663951248,1624688

Pero no funcionará. Voy a ver todos o incluso uno por uno. ¿Pero ni un cliente y un grupo de proveedores?

kletterbilder_1-1630422490544.png

¿También intenté cambiar las interacciones?

kletterbilder_0-1630422425203.png

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.