Предложить посещение музея
На основе гео метаданных из коллекции туристических фотографий, внести предложения об интересных местах, таких как музеи, расположенных в одном и том же районе.
In[1]:=
![Click for copyable input](assets.ru/suggest-a-museum-to-visit/In_39.png)
files = Map[img \[Function] ExampleData[img, "FilePath"],
ExampleData[{"TestImageSet", "Oxford2011"}]];
geopos = Map[file \[Function] Import[file, "GeoPosition"], files];
Расчитаем центроид мест, где были сделаны снимки.
In[2]:=
![Click for copyable input](assets.ru/suggest-a-museum-to-visit/In_40.png)
geodata =
GeoPosition[{Mean@geopos[[ All, 1, 1]], Mean@geopos[[All, 1, 2]],
Mean@Cases[geopos, GeoPosition[{_, _, h_}] :> h]}]
Out[2]=
![](assets.ru/suggest-a-museum-to-visit/O_23.png)
Найдем ближайший музей.
In[3]:=
![Click for copyable input](assets.ru/suggest-a-museum-to-visit/In_41.png)
entMus = Quiet[First@GeoNearest["Museum", geodata]];
In[4]:=
![Click for copyable input](assets.ru/suggest-a-museum-to-visit/In_42.png)
geoMus = Quiet[FindGeoLocation@entMus];
Соберем информацию об этом музее.
In[5]:=
![Click for copyable input](assets.ru/suggest-a-museum-to-visit/In_43.png)
mus = EntityValue[entMus, EntityProperty["Museum", "Name"]];
type = EntityValue[entMus,
EntityProperty["Museum", "MuseumTypes"]]; about =
WikipediaData[mus, "SummaryPlaintext"];
description = TextGrid[{
{Style["MUSEUM TO VISIT", 15], SpanFromLeft},
{Style["Name:", Bold], mus},
{Style["Types:", Bold],
StringTake[ToString[type], {2, -2}]}, {Style["About:", Bold],
about}
}, ItemSize -> {{4, 30}, Automatic}]
Out[5]=
![](assets.ru/suggest-a-museum-to-visit/O_24.png)
Добавим информацию об этом музее в качестве подсказки в карту города.
In[6]:=
![Click for copyable input](assets.ru/suggest-a-museum-to-visit/In_44.png)
tooltip =
Tooltip[GeoMarker[geoMus, Entity["Icon", "Museum"]], description];
In[7]:=
![Click for copyable input](assets.ru/suggest-a-museum-to-visit/In_45.png)
GeoGraphics[{Thick, Red, GeoDisk[geodata, Quantity[1000, "Meters"]],
tooltip}, "GeoRange" -> 1500, ImageSize -> Medium]
Out[7]=
![](assets.ru/suggest-a-museum-to-visit/O_25.png)