Saint_Byte\'s Blog

Больше чем Web

Как использовать OpenStreet Map с Google Maps API версии 3

Добавить в свое приложение которое работает с Google Maps API поддержку OpenStreetMap просто. Для начала создадим собственно объекта нового типа карт , и определим в нем откуда брать картинки для отображения, делается это просто:

var openStreet ; // Для поддержки опен стрит
openStreet = new google.maps.ImageMapType({getTileUrl: function(ll, z) {
var X = ll.x % (1 << z); // wrap
return "http://tile.openstreetmap.org/" + z + "/" + X + "/" + ll.y + ".png";
} ,
tileSize: new google.maps.Size(256, 256),
isPng: true,
maxZoom: 18,
name: "OSM",
alt: "Open Streetmap tiles"
});

Теперь добавляем его как тип карты в главный объект карты в моем случае это map.

map.mapTypes.set('osm', openStreet);

И теперь чтоб карта отображалась даннами с openstreetmap достаточно сделать:

map.setMapTypeId('osm');

Api Yandex карт теперь дружит с Вконтакте

Вчера Яндекс сделал маленький модуль к своим карта. По сути модуль занимается тем что убирает ссылки на яндекс из карты потому что в приложениях для вконтакте в соответствие с пунктом 5 правил размещения приложений нельзя ставить ссылки на сайты отличные от сайтов вконтакте. IMHO надуманный пункт , именно из-за этого не прошло мое iframe приложение с блогом.  Мое приложение прекрасно работало хоть и не соответствовало правилам – оно никаким образом не наносило ущерба вконтакте.

Подключить этот модуль yandex maps api можно так :

YMaps.load("vkontakte", function() {alert('vkontakte module is loaded')});

Предварительно только надо загрузить просто api яндекс карт. Так же в скором времени я подозреваю yandex сделает аналогично гуглу и откажется от ключей для api на сайты

Спонсор поста пинксео – разработка сайтов

Adobe раздает Adobe Flash Builder 4 Standard бесплатно

Adobe в очередной раз раздает бесплатно свои продукты. Примерно 2 года назад Adobe раздавал Adobe Flex Builder 3. Сейчас они раздают следующую версию Flex Builder – Adobe Flash Builder 4 Standard. Название поменялось, но и билдер стал более функциональный.

Бесплатно могут получить Adobe Flash Builder 4  : Студенты и  преподаватели,  безработные разработчики, и те кто получил специальный промо код. Форму для получения халявы заполнять здесь

Реклама: ноутбуки asus

Ваше место в Yandex twitter топ

Хочется всегда быть первым или хотя бы в топе =) Для того чтоб всегда наблюдать на каком месте ваш твиттер в яндекс твиттер топе (blogs.yandex.ru/top/twitter) .  Для этого написал маленькую тулза для того чтоб смотреть какое вы занимаете место в yandex twitter топе. Воспользоваться ей можно на мобильной версии dotblog.ru . В дальнейшем будет создан сервис для построения истории достижения первого места в топе твиттер яндекса.

Сегодня спонсор : женский журнал =))))

Sb_map : Скрещиваем Yandex Maps Api и Google Latitude

Есть у Google такой сервис Google Latitude – занимается этот сервис по сути тем что наблюдает за своими пользователями и оповещает когда кто-то из друзей рядом и делает прочие пакости.  Работает например на windows mobile – в виде программы Google Maps . О программе Google maps читайте в предыдущем посте. Так вот когда выходишь из Google Maps программа спрашивает продолжать типа следить в гугл локаторе – если согласиться ваш коммуникатор будет периодически скидывать данные о вашем местоположение в Google .  И наблюдать результат можно будет в Google Latitude. Определение местоположения происходит по GPS, точкам Wi-fi и базовым станциям. Погрешность соответственно составляет в случае с GPS до 2 метров . Основные погрешности в определении по GPS вызывает отсутствие видимости спутников (тобишь неба) - соответственно с помещение GPS навигация работает плохо.  Зато по GPS гугл будет извещен где вы вошли в здание. Wifi  - дает от 2 до 100 метров погрешности – немного лучше чем GPS – но покрытие не вся планета =) По базовым вышкам от 50 до 3000 метров в зависимости от местности , частоты которую использует телефон , и просто погоды. Местоположение которое определило ПО от Google на вашем устройстве оправляется в гугл – где храниться и обрабатывается. Но google не жадный и позволяет получить данные обратно в виде XML JSON atom. Эти данные я получаю и обрабатываю показывая на карте =) Гугл добрый с одной стороны а яндекс с другой – Яндекс позволяет получать через Static Maps Api – спутниковые снимки а Google нет =) И таким образом родился плугин для wordpress sb_map – вам надо только указать Json фид с вашими геоданными , ключ yandex maps api, добавить код на страницу где будет показывается ваше местоположение и все будет работать почти без вашего участия и ваши читатели будут знать где вы =)

Скачать плугим можно здесь в действие плугин смотрите здесь

Реклама: Все что надо чтоб писать везде в блог это - ноутбук

Vkontakte и Twitter наконец подружились

Вконтакте сделали интергацию с твиттером . Мне всегда казалось что Паша Дуров – хочет сам стать твиттером – но видно не бывать этому =) . Настроить интергацию с твиттером можно в Мои Настройки / Мобильные сервисы и в самом низу раздел Экспорт статуса. -далее разрешить приложению vk.com постить твиты. ИХМО это огромный прогресс для Вконтакта. Теперь остается дождаться когда можно будет нормальное API для обновления статуса и OAuth.

Реклама всяякий фигни как обычно: небулайзер

Маленький Update Twitter Image Post

Сегодня обновил свое приложение для Twitter’а – Image Post . Добавил ещё одно поле чтоб можно было писать описание для картинки – так хоть понятнее что за фотка лежит по ссылке =) . Twitter Image Post в найдете на мобильной версии моего блога http://dotblog.ru/m

Реклама: После того как сталкер затарился дозиметром – ему нехватает только купить нитрат тестер

Adobe Flash на iPhone / iPod / iPad

Все мы знаем что Apple не дружит с Adobe и Flash не собирается давать поддерживать Flash на iPhone и iPad.Все было бы плохо если бы истинные хакеры спасают положение.  Проект Smokescreen от Криса Смоака (Chris Smoak) призван решить проблему работы Flash’а на устройствах без оного. Пока проект очень молодой но уже сейчас результаты впечатляют. Smokescreen представляет из себя js-скрипт который проигрывает swf файл. Работает не на всех браузерах  - а только на относительно современных. Но главное что он работает на MobileSafari (медленно но работает) а этот браузер работает на iPhone , iPad , iPod .

Результаты совместимости браузеров по версии разработчиков такие:

  • Firefox 3.6 на Mac/Win7 – работает
  • Safari 4.0.5 на Mac/Win7 – работает
  • Chrome 5 beta на Mac/Win7 – работает
  • iPhone OS 3.x on iPad/iPhone/iPod Touch — Flash не запустился , Smokescreen работает медленно
  • Opera 10.53 on Mac/Win7 — Flash запустился, Smokescreen не работает
  • ≤IE8 on Win — Flash запустился, Smokescreen не работает
  • IE9 on Win7 — Flash запустился, Smokescreen не работает

От себя добавлю что на эмуляторе iPhone –  у меня тоже запустилось все , но медленно =) На эмуляторе мобильной оперы запустилось но нечего не показало =( .

Видео от разработчика как он проигрывает flash на iPad можно посмотреть здесь . Скрипт весит около 180 кб что гораздо меньше чем flash player.Абсолютно автономный не требует сторонних сервисов (как он выдергивает музыку из Flash’а). Собственно Smokescreen  транслирует SWF файл в Javascript/SVG/HTML5  и воспроизводит ,так же в нем присутствует простейшей интерпретатор байткода ActionScript.Все конечно хорошо но не все флешки пойду на этом скрипте а только некоторые =( . И пока не ясна какая лицензия будет у скрипта , но разработчик обещает лицензию опенсурцовую =)Скрипт пока не понятно где качать – можно выколупать из официльного сайта .

js-Код который запускает флешки такой:

<script type="text/javascript" src="js/smokescreen.0.1.3-min.js"></script>
<script>
function urlParam(name, _default) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]")
var regexS = "[\\?&]" + name + "=([^&#]*)"
var regex = new RegExp(regexS)
var results = regex.exec(window.location.href)
if (results == null) {
return _default
}
else {
return results[1]
}
}
function embed(container) {
var url = 'swf/smokescreen-intro.swf'
var element = document.getElementById(container)
var size = urlParam('size', 1)
var width = 550 * size
var height = 400 * size
var name = 'ss-intro'
var params = {}
new Smokescreen(url, element, width, height, name, params)
}
</script>
</head>
<div id="fljs">
No Smokescreen :(
</div>
<script>

embed('fljs')

</script>
<script>

Тырить скрипт smokescreen.0.1.3-min.js: Здесь;  Оф сайт: smokescreen.us/

Реклама: Каждому сталкеру нужен радиометр дозиметр

Flash Fullscreen

Как обычно я решил рассмотреть что можно сделать плохого флешем – вполне легальными методами. Для начала я решил разобраться с работой flash на полный экран. Развернуть флешку на полный экран просто – надо установить свойство displayState глобального объекта stage на StageDisplayState.FULL_SCREEN. Вот так:

stage.displayState = StageDisplayState.FULL_SCREEN;

Для того чтоб так сделать надо подключить две библиотеки : flash.display.Stage , flash.display.StageDisplayState.

import flash.display.Stage;
import flash.display.StageDisplayState;

Свернуть все обратно тоже просто:

stage.displayState = StageDisplayState.NORMAL;

Надо отдать должное Adobe . Какие-либо прозрачности и прочие пакости не работаю со stage – так что фейковые предупреждения безопасности и окна получить не получиться =) Единственное что мне пока пришло в голову – это пугать пользователей типа синим экраном смерти windows =))) ( и то там предупреждение по середине). Код для этого сделющий:

package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Stage;
import flash.display.StageDisplayState;
import flash.display.*;
import flash.events.*;
import flash.text.TextField;

//import MySimpleButtom.*;
//import MySimpleButtom.*;
/**
* ...
* @author
*/
[SWF(width = "300", height = "400", backgroundColor = "#0000FF", frameRate = "100")]
public class Main extends Sprite
{

public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
//var but: MySimpleButtom = new MySimpleButtom();
//this.addChild(but);
var tf:TextField = new TextField();
tf.x = 0;
tf.y = 0;
tf.htmlText = '<font color="#ffffff">fkjdfjkg hdkj hdkfjhg <br /> ';
tf.htmlText += 'fkjdfjkg hdkj hdkfjhg kjdfhkjdfh kdjfhg djfgh djkf';
tf.htmlText += '</font>';
tf.width = stage.fullScreenWidth;
tf.height = stage.fullScreenHeight;
addChild(tf);
stage.displayState = StageDisplayState.FULL_SCREEN;
}
}

}

И как обычно реклама. Пока хакеры захватывают Москву, в реальном мире творятся пожары. И по этому работа пожарным в Москве есть всегда .

Google maps api v3

Api Google Maps теперь версия 3 , а версия 2 помечана как Устаревший API(Deprecated API). Могу сказать сразу сказать что совместимости нет и приложения написанные на Google Maps API 2 не будут работать с версией 3. Изменения кардинальные для начала больше не требуется API ключ , объект с экземпляром карты теперь создается так:

var myOptions = {
center: google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true };
map = new google.maps.Map(document.getElementById("map"),myOptions);

Заметьте что теперь обьект класса google.maps.Map – а раньше был просто GMap – гугл стандартизирует все свои API. Так же были замечено отсутствие следующих методов:

map.enablePinchToZoom();
map.enableScrollWheelZoom();
map.enableContinuousZoom();
map.enableDoubleClickZoom();
map.setUIToDefault();

и много подобных исправлений придется сделать выявить и сделать чтоб мигрировать на версию 3

Сегодня наш спонсор Avtosani.ru – защита картера шериф
  • Прочее

  • Обьявления