Язык Wolfram Language

Вычислительная фотография

Предложить посещение музея

На основе гео метаданных из коллекции туристических фотографий, внести предложения об интересных местах, таких как музеи, расположенных в одном и том же районе.

In[1]:=
Click for copyable input
files = Map[img \[Function] ExampleData[img, "FilePath"], ExampleData[{"TestImageSet", "Oxford2011"}]]; geopos = Map[file \[Function] Import[file, "GeoPosition"], files];

Расчитаем центроид мест, где были сделаны снимки.

In[2]:=
Click for copyable input
geodata = GeoPosition[{Mean@geopos[[ All, 1, 1]], Mean@geopos[[All, 1, 2]], Mean@Cases[geopos, GeoPosition[{_, _, h_}] :> h]}]
Out[2]=

Найдем ближайший музей.

In[3]:=
Click for copyable input
entMus = Quiet[First@GeoNearest["Museum", geodata]];
In[4]:=
Click for copyable input
geoMus = Quiet[FindGeoLocation@entMus];

Соберем информацию об этом музее.

In[5]:=
Click for copyable input
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]=

Добавим информацию об этом музее в качестве подсказки в карту города.

In[6]:=
Click for copyable input
tooltip = Tooltip[GeoMarker[geoMus, Entity["Icon", "Museum"]], description];
In[7]:=
Click for copyable input
GeoGraphics[{Thick, Red, GeoDisk[geodata, Quantity[1000, "Meters"]], tooltip}, "GeoRange" -> 1500, ImageSize -> Medium]
Out[7]=

Родственные примеры

de en es fr ja ko pt-br zh