mattyj2009
Buenas tardes,
Tengo un archivo que se exporta desde uno de nuestros sistemas que tiene las columnas de Dirección, Latitud y Longitud. Luego tenemos un archivo GeoJSON que tiene los límites de varias áreas de servicio. Lo que queremos lograr es extraer (como una columna) el nombre del área de servicio del archivo GeoJSON.
Entonces, el objetivo final sería tener una tabla que incluyera la dirección, la latitud, la longitud y el nombre del área de servicio.
Nuestro archivo GeoJSON tendría información como la siguiente. Quisiéramos extraer el campo de nombre para que, en los ejemplos a continuación, Downtown y East Roam, si la dirección está dentro de la forma del polígono.
[
{
"id":1,
"campaign_id":2,
"name":"Downtown",
"zone_type":"in_service",
"people_goal":38,
"zone_color":"#008000",
"notes": "Notes for the Downtown Zone",
"is_subzone":false,
"parent_zone_id":null,
"geojson":[
{
"type":"Feature",
"properties":{
"id":1,
"zone_name":"Downtown",
"lg_id":34,
"color":"#008000"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
-85.17772674676962,
34.25390581369373
],
[
-85.17626762506552,
34.251706537253966
],
[
-85.17695427057333,
34.248655832831254
],
[
-85.17618179437704,
34.247591607594714
]
]
]
}
}
]
},
{
"id":3,
"campaign_id":2,
"name":"East Rome",
"zone_type":"extended",
"people_goal":6,
"zone_color":"#008000",
"notes":"",
"is_subzone":false,
"parent_zone_id":null,
"geojson":[
{
"type":"Feature",
"properties":{
"id":3,
"zone_name":"East Rome",
"lg_id":37,
"color":"#008000"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
-85.12825012207034,
34.25409499535699
],
[
-85.1257610321045,
34.25356291881514
],
[
-85.12086868286134,
34.25494631082515
],
[
-85.11108398437501,
34.23976322547396
],
[
-85.15262603759767,
34.261898398047876
],
[
-85.12825012207034,
34.25409499535699
]
]
]
}
}
]
}
]
v-robertq-msft
Hola, @mattyj2009
A través de las operaciones en el editor de consultas de Power, solo puedo obtener una tabla que contiene la latitud y la longitud, por lo que creo que debe crear una tabla para East Rome y Downtown.
Para la tabla ‘Roma’, puede probar este M-Query:
let
Source = Json.Document(File.Contents("C: Desktopgeojson.json")),
Source1 = Source{1},
geojson = Source1[geojson],
geojson1 = geojson{0},
geometry = geojson1[geometry],
coordinates = geometry[coordinates],
coordinates1 = coordinates{0},
#"Converted to Table" = Table.FromList(coordinates1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Extracted Values" = Table.TransformColumns(#"Converted to Table", {"Column1", each Text.Combine(List.Transform(_, Text.From), "#(tab)"), type text}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Extracted Values", "Column1", Splitter.SplitTextByDelimiter("#(tab)", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
#"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type number}, {"Column1.2", type number}})
in
#"Changed Type"
Para la tabla ‘Downtown’, puede probar este M-Query:
let
Source = Json.Document(File.Contents("C: Desktopgeojson.json")),
Source1 = Source{0},
geojson1 = Source1[geojson],
geojson2 = geojson1{0},
geometry = geojson2[geometry],
coordinates = geometry[coordinates],
coordinates1 = coordinates{0},
#"Converted to Table" = Table.FromList(coordinates1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Extracted Values" = Table.TransformColumns(#"Converted to Table", {"Column1", each Text.Combine(List.Transform(_, Text.From), "#(tab)"), type text}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Extracted Values", "Column1", Splitter.SplitTextByDelimiter("#(tab)", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
#"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type number}, {"Column1.2", type number}})
in
#"Changed Type"
Luego puede crear un gráfico de mapa tanto para ‘Roma’ como para ‘Downtown’, así:
Si esto no es lo que desea, responda y muestre el resultado esperado en una tabla o gráfico.
Atentamente,
Equipo de apoyo comunitario _Robert Qin
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.
v-robertq-msft
Hola, @mattyj2009
A través de las operaciones en el editor de consultas de Power, solo puedo obtener una tabla que contiene la latitud y la longitud, por lo que creo que debe crear una tabla para East Rome y Downtown.
Para la tabla ‘Roma’, puede probar este M-Query:
let
Source = Json.Document(File.Contents("C: Desktopgeojson.json")),
Source1 = Source{1},
geojson = Source1[geojson],
geojson1 = geojson{0},
geometry = geojson1[geometry],
coordinates = geometry[coordinates],
coordinates1 = coordinates{0},
#"Converted to Table" = Table.FromList(coordinates1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Extracted Values" = Table.TransformColumns(#"Converted to Table", {"Column1", each Text.Combine(List.Transform(_, Text.From), "#(tab)"), type text}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Extracted Values", "Column1", Splitter.SplitTextByDelimiter("#(tab)", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
#"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type number}, {"Column1.2", type number}})
in
#"Changed Type"
Para la tabla ‘Downtown’, puede probar este M-Query:
let
Source = Json.Document(File.Contents("C: Desktopgeojson.json")),
Source1 = Source{0},
geojson1 = Source1[geojson],
geojson2 = geojson1{0},
geometry = geojson2[geometry],
coordinates = geometry[coordinates],
coordinates1 = coordinates{0},
#"Converted to Table" = Table.FromList(coordinates1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Extracted Values" = Table.TransformColumns(#"Converted to Table", {"Column1", each Text.Combine(List.Transform(_, Text.From), "#(tab)"), type text}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Extracted Values", "Column1", Splitter.SplitTextByDelimiter("#(tab)", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
#"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type number}, {"Column1.2", type number}})
in
#"Changed Type"
Luego puede crear un gráfico de mapa tanto para ‘Roma’ como para ‘Downtown’, así:
Si esto no es lo que desea, responda y muestre el resultado esperado en una tabla o gráfico.
Atentamente,
Equipo de apoyo comunitario _Robert Qin
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.
mattyj2009
En respuesta a v-robertq-msft
Así que tengo una tabla que se exporta desde nuestro sistema. Tengo algunos datos de muestra a continuación (antes de cualquier modificación).
identificación | lat | largo | número | predirección | nombre de la calle | tipo de calle |
331 | 39.904722 | -91.366863 | 1201 | Principal | ||
4334 | 39.817275 | -91.392727 | 3935 | Maestros | Cra | |
4790 | 39.80445043 | -91.36748135 | 1221 | Unión | ||
5165 | 39.810623 | -91.356699 | 205 | norte | Principal | S t |
6376 | 39.775113 | -91.403285 | 4121 | Mercado | S t | |
7487 | 39.839117 | -92.484838 | 908 | W | Bourke | S t |
7594 | 39.812558 | -91.368877 | 1201 | lyon | S t | |
9462 | 39.907396 | -93.083227 | 1701 | norte | Expresar | S t |
15900 | 39.709727 | -92.938642 | 27591 | Morton | Calle | |
16245 | 39.80383696 | -92.95601428 | 26804 | Pino | Calle | |
20492 | 39.773696 | -92.941444 | 30736 | Carretera 15 |
Básicamente, lo que queremos lograr es poner el nombre del área dentro de la cual se encuentran la latitud y la longitud y, si no se encuentra dentro de ninguno de los polígonos en el archivo GeoJSON, déjelo en blanco (nulo).
identificación | lat | largo | número | predirección | nombre de la calle | tipo de calle | nombre |
331 | 39.904722 | -91.366863 | 1201 | Principal | Centro | ||
4334 | 39.817275 | -91.392727 | 3935 | Maestros | Cra | Centro | |
4790 | 39.80445043 | -91.36748135 | 1221 | Unión | Roma oriental | ||
5165 | 39.810623 | -91.356699 | 205 | norte | Principal | S t | Roma oriental |
6376 | 39.775113 | -91.403285 | 4121 | Mercado | S t | nulo | |
7487 | 39.839117 | -92.484838 | 908 | W | Bourke | S t | nulo |
7594 | 39.812558 | -91.368877 | 1201 | lyon | S t | Roma oriental | |
9462 | 39.907396 | -93.083227 | 1701 | norte | Expresar | S t | Centro |
15900 | 39.709727 | -92.938642 | 27591 | Morton | Calle | nulo | |
16245 | 39.80383696 | -92.95601428 | 26804 | Pino | Calle | nulo | |
20492 | 39.773696 | -92.941444 | 30736 | Carretera 15 | nulo |
Los datos anteriores son datos de muestra y sé que ninguno de los puntos no está dentro de East Rome o Downtown, pero se completa con fines de muestra.
v-robertq-msft
En respuesta a mattyj2009
Hola, @mattyj2009
Desafortunadamente, supongo que no puedo obtener el resultado esperado, pero aquí hay algunos blogs que coinciden bien con este caso. Puedes echar un vistazo:
https://docs.oracle.com/en/database/oracle/oracle-database/19/adjsn/using-GeoJSON-geographic-data.ht…
https://radacad.com/how-to-do-power-bi-mapping-with-latitude-and-longitude-only
Atentamente,
Equipo de apoyo comunitario _Robert Qin
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.