Скрипты в Google spreadsheets
Не так давно стал доступен сервис скриптов в таблицах Google для персональных аккаунтов (gmail).
googledocs.blogspot.com/2010/03/apps-script-gallery-for-google.html
Краткое описание
www.google.com/google-d-s/scripts/scripts.html
Кроме этого, непосредственно из таблиц стал доступен сервис публикации скриптов в галерею.
Теперь мы можем создавать скрипты для Google Spreadsheets, загружать готовые, публиковать, обмениваться с другими пользователями.
Скрипты имеют богатый набор возможностей. Мы можем использовать всё управление, доступное в сервисах Google.
www.google.com/google-d-s/scripts/overview.html
Результатом работы скрипта, например, могут быть:
- новая функция, отсутствующая в стандартном наборе;
- значение, возвращаемое веб сервисом, в том числе, SOAP, WSDL и другие;
- управление другими сервисами, например, сайтом, календарем, почтовой рассылкой;
- автоматическое заполнение таблиц (непосредственное управление нашими spreadsheets);
- создание пользовательских интерфейсов (custom spreadsheets UI).
Примеры созданных скриптов для применения в неогеографии
Расчет расстояния между точками по большой дуге
Copy Source | Copy HTML
- function GCD1(lat1, lon1, lat2, lon2) {
- // Return Great Circle Distance between points calculation
- function radians(a) {
- var outNum =Math.PI*a/180;
- return outNum;
- }
- var R = 6372.795;
- var d1=Math.sin(radians(lat1))*Math.sin(radians(lat2))+Math.cos(radians(lat1))*Math.cos(radians(lat2))*Math.cos(radians(lon2)-radians(lon1));
- var d2=Math.cos(radians(lat2))*Math.sin(radians(lon2)-radians(lon1));
- var d3=Math.cos(radians(lat1))*Math.sin(radians(lat2))-Math.sin(radians(lat1))*Math.cos(radians(lat2))*Math.cos(radians(lon2)-radians(lon1));
- var len=R*Math.atan2(Math.sqrt(d2*d2+d3*d3),d1);
- return len;
- }
Прямое геокодирование
Вернуть KML по названию места
Вернуть координаты по названию местаCopy Source | Copy HTML
- function getKML(placeName) {
- // Return KML by placename
- if (placeName == "") {
- return "You have to write the name the place"
- }
- var url = "http://maps.google.com/maps/geo?q="+ placeName+"&output=kml";
- var response = UrlFetchApp.fetch(url);
- var str = response.getContentText();
- return str;
- }
Вернуть долготу по названию места
- function getLngLat(placeName) {
- // Return LngLatitude by placename
- if (placeName == "") {
- return "You have to write the name the place"
- }
- var url = "http://maps.google.com/maps/geo?q="+ placeName+"&output=json";
- var response = UrlFetchApp.fetch(url);
- var str=eval('(' + response.getContentText() + ')').Placemark[ 0].Point.coordinates;
- return str;
- }
Вернуть широту по названию места
- function getLng(placeName) {
- // Return Longitude by placename
- if (placeName == "") {
- return "You have to write the name the place"
- }
- var url = "http://maps.google.com/maps/geo?q="+ placeName+"&output=json";
- var response = UrlFetchApp.fetch(url);
- var str=eval('(' + response.getContentText() + ')').Placemark[ 0].Point.coordinates[ 0];
- return str;
- }
- function getLat(placeName) {
- // Return Latitude by placename
- if (placeName == "") {
- return "You have to write the name the place"
- }
- var url = "http://maps.google.com/maps/geo?q="+ placeName+"&output=json";
- var response = UrlFetchApp.fetch(url);
- var str=eval('(' + response.getContentText() + ')').Placemark[ 0].Point.coordinates[1];
- return str;
- }
Обратное геокодирование
Вернуть адрес по координатам
- function getAddress(placeCoord) {
- // Return Address by placeCoord (reverse geocoding) placeCoord=lat,lng
- if (placeCoord == "") {
- return "You have to write the name the place"
- }
- var url = "http://maps.google.com/maps/geo?q="+ placeCoord+"&output=json";
- var response = UrlFetchApp.fetch(url);
- var str=eval('(' + response.getContentText() + ')').Placemark[ 0].address;
- return str;
- }
Пример таблицы расчетов с применением этих скриптов
news.eastgeology.com/2010/04/google-spreadsheets.html
Комментариев нет:
Отправить комментарий