Города и расстояния — CityData и Geodesy
Города и расстояния — CityData и Geodesy
В подпакете CityData можно найти функции, позволяющие найти координаты большинства крупных городов мира: CityData [city, datatype], CityData [city] иCityData[datatype]. Например: <<Miscellaneous`CityData` CityData["Montreal", CityPosition] {{45, 30}, {-73, -36}} CityData["Washington"] {{CityPosition, {{38, 53, 42}, {-77, -2, -12}}}}
Координаты (широта и долгота) выдаются в формате {градусы, минуты} или {градусы, минуты, секунды}.
- CityDistance [ "cityl", "pity"] — возвращает расстояние между двумя указанными городами;
- CityDistance["cityl","city",CityDistanceMethod->Method] — возвращает расстояние между двумя указанными городами со спецификацией метода вычислений (по умолчанию используется функция SphericalDistance из подпакета Geodesy).
Убедимся, что информация действительно добавлена:
CityData["Champaign", CityPosition] {{40, 7, 5}, {-88, -14, -48}}Для добавления новых полей в базу данных можно использовать функцию AppendTc (см. урок 9). Например, добавим поле для хранения информации о населении:
AppendTo[$CityFields, CityPopulation]Теперь введем в базу данных информацию о населении Вашингтона:
CityPopulation[{"Washington", "USA", "DC"}] = 638000; Проверим результат, запросив всю имеющуюся в базе информацию об этом городе: CityData["Washington"] {{CityPosition, {{38, 53, 42}, {-77, -2, -12}}}, {CityPopulation, 638000}}Как видите, результат теперь включает новую информационную категорию —
CityPopulation. В подпакете Geodesy есть функции, вычисляющие расстояние между двумя точками с учетом выпуклости Земли:- SphericalDistance [posl,pos2] — вычисляет расстояние между двумя точками в предположении, что Земля — идеальный шар (сфера);
- SpheroidalDistance [posl,pos2] — вычисляет расстояние между двумя точками в предположении, что Земля — приплюснутый шар (сфероид).