Ignite RSS Feeds Главная Программы на заказ Портфолио Контакты Геокодирование – еще один способ получения координат Автор: Alex web

Нет ответов
В прошлой статье, я рассказывал, как можно получить координаты для карт того или иного объекта вручную геокодирование

Геокодирование – это чрезвычайно сложный процесс преобразования адреса в координаты широты и долготы. К счастью, множество сервисов в интернете облегчили нам с вами эту задачу. Я не буду рассказывать про все из них, не буду рассказывать, как они работают, просто продемонстрирую, как можно решить поставленную задачу с использованием Google Geocoding Web Service.

Для того, чтобы воспользоваться веб сервисом, нужно послать запрос на сервер Google следующего вида:

C# 1 http : //maps.google.com/maps/api/geocode/[type]?address=[address]&sensor=false где [type] – тип данных в котором вам придет ответ: xml или json

В результате запроса:

C# http : //maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false

вам приходит ответ следующего вида (json):

C# { { }, 2 3 4 5 7 8 11 14 {    "results" : [        {          "address_components" : [ . . . ] ,          "formatted_address" : "1600 Амфитеатр-Паркуэй, Маунтин-Вью, Калифорния 94043, Соединённые Штаты Америки" ,          "geometry" : {              "location" : {                "lat" : 37.42285760 ,                "lng" : - 122.08506470              } ,                       } ,                 }    ] , }

Получение координат для карт июня 13

Автор: Alex Рубрика: web

Нет ответов

Вчера я рассказывал об использовании замечательной библиотеки leaflet для визуализации своих карт на сайте. При установке камеры и маркера я использовал координаты x, y и внимательные читатель задастся вопросом, как получить значения этих переменных для реальных объектов на карте, как это сделано у меня на примере карты бесплатных Wi-Fi источников http://wikimapia.org/

Наводимся прицелом на нужный объект (для точности это лучше делать с большим увеличением) и в левом-нижнем углу видим координаты выбранного объекта:

JavaScript 1 L . marker ( [ 37.6200783 , - 89.5172882 ] ) . addTo ( map ) ; ,
leaflet – создание карт для web

июня 12 Alex Рубрика: web Нет ответов

интерактивная карта бесплатных точек Wi-Fi в городе Донецке

Подключаем библиотеку

XHTML <!--[if lte IE 8]> <![endif]--> 1 2 3 4 <link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.5/leaflet.css" /> <!--[if lte IE 8]>      <link rel="stylesheet" href="http://alexbard.org.ua/cdn.leafletjs.com/leaflet-0.5/leaflet.ie.css" /> <![endif]--> <script src = "http://cdn.leafletjs.com/leaflet-0.5/leaflet.js" > </script> Создаем div для карты в нужном месте, явно указывая размеры карты (это можно и нужно сделать в соответствующем css-файле) :

XHTML 1 <div style = "height=150px;" id = "map" > </div>

Инициализация карты

Создаем карту с координатами карты x, y и приближением z: JavaScript var map = L . map ( 'map' ) . setView ( [ x , y ] , z ) ;

Присваиваем слой с картой:

JavaScript L . tileLayer ( 'http://{s}.tile.osm.org/{z}/{x}/{y}.png' , {      attribution: '&copy; <a href="http://alexbard.org.ua/osm.org/copyright">OpenStreetMap</a> contributors' } ) . addTo ( map ) ;

JavaScript 2 3 L . marker ( [ x , y ] ) . addTo ( map )      . bindPopup ( 'A pretty CSS3 popup. <br> Easily customizable.' )      . openPopup ( ) ;

, ,
Встраивать html5 видео все еще слишком сложно

Автор: Alex web

Нет ответов

Как встроить видео на сайт?

Как это сделать без помощи сторонних сервисов?

Существует 4 основных группы людей, которые будут смотреть видео у вас на сайте:

  • Самый простой случай. Видео-проигрыватель в одну строчку: XHTML <video src = "video.mp4" = 640 = >

    Для поддержки устаревших браузеров (в первую очередь под этой фразой следует понимать IE7+) будем использовать javasript-библиотеку html5media.js, которая будет создавать flash видеоплеер для случая устаревшего браузера: XHTML <script src="http://api.html5media.info/1.1.5/html5media.min.js"></script> <body> </body> 1 2 6      <head>          <script src = "http://api.html5media.info/1.1.5/html5media.min.js" > </script>      </head>      <body>          <video src = "video.mp4" = 640 = 360 controls > </video>      </body>

    Добавляем закрывающий тег , чтобы устаревшие браузеры не расстраивались от увиденного.

    Поддержка браузеров с open source кодеками

    XHTML <script src="http://api.html5media.info/1.1.5/html5media.min.js"></script> <body> </video> </body> 1 2 3 4 6 9      <head>          <script src = "http://api.html5media.info/1.1.5/html5media.min.js" > </script>      </head>      <body>          <video src = "video.mp4" = height = controls >              <source src = "video.mp4" > </source>              <source src = "video.webm" > </source>          </video>      </body>

  • Теперь остались только владельцы слабых мобильных устройств.

    XHTML <script src="http://api.html5media.info/1.1.5/html5media.min.js"></script> <body> </body> 1 2 3 5 6 7 8 9 10      <head>          <script src = "http://api.html5media.info/1.1.5/html5media.min.js" > </script>      </head>      <body>          <video src = "video.mp4" = height = controls >              <source src = "video.mp4" media = "only screen and (min-device-width: 568px)" > </source>              <source src = "video-low.mp4" media = "only screen and (max-device-width: 568px)" > </source>              <source src = "video.webm" > </source>          </video>      </body>

  • Chrome
  • У меня все еще, что-то не работает

    Nancy Framework

    июня 8

    Alex web Нет ответов – это легковесный веб-фреймворк для .net. Я уже имел возможность использовать этот фреймворк для написания нескольких коммерческих проектов и могу сказать, что работать с ним – одно удовольствие. Причем он подходит не только для начинающих веб-разработчиков, но и для профессионалов своего дела.

    Начнем по-порядку.

    http://nancyfx.org/

    Пишем первый сайт

    C# { 5 7 public class SampleModule : Nancy . NancyModule {      public SampleModule ( )      {          Get [ "/" ] = _ = > "Hello World!" ;      } }

    Aurora.js – аудио фреймворк для web Автор: Alex Рубрика: Новости

    Нет ответов

    Демо

    Исходники

    , Планы и всякое Апр 24

    Alex Рубрика: ignite

    Я давно не писал в блог “просто так”, о жизни. Этот пост будет посвящен этому. Я расскажу о том, чем я живу в последнее время, о прогрессе в разработке Ignite и о своих планах на будущее.

    Этим я занимался полтора месяца (с конца января). После  ведения своего бизнеса, было интересно окунуться в работу других предприятий, в то как они предлагая копейки, пытаются найти нормального специалиста, в то что узнав про какой-нибудь пробел в знаниях его раздували до размеров слона и т.д. В итоге, работу я конечно же нашел, и сейчас все еще продолжаю получать письма с предложениями на все те же вакансии, куда не прошел. Забавно.. но этот пост не про это.

    От работы перейдем к личным проектам: работа над Ignit’ом опять застопорилась – за последние три недели я не написал ни строчки кода(ну может быть несколько). Если честно, мне просто надоело его писать. И, вероятно, это будет концом его разработки. В ближайшие дни я соберу версию, пригодную для публикации, и выдам ее на гора. Возможно, исходные коды уедут на github, но, если честно, мне стыдно за некоторые(многие) места времен hello world моего обучения языку C#. Возможно, публичный (сырой) релиз подстегнет мой интерес.. если же нет, то в задумке крутится новая (и совершенно не похожая на предыдущую) игра:

    C# Отложенное получение данных Апр 13

    Alex Рубрика: программирование

    Иногда при программировании сталкиваешься с задачей, которая выполняется длительное время. Обычно такие операции выполняют в отдельном потоке, чтобы не мешать ходу работы программы – таким образом решается проблема недоступности потока программы во время выполнения длительной операции, однако тут же возникает проблема синхронизации полученных в результате длительных вычислений данных с данными программы. Тут не работает привычная присваивания: C# var a = someAction ( ) ; C# { //действие } 1 2 7 8 10 public static void someAction ( ) {    var worker = new BackgroundWorker ( ) ;    //действие    worker . DoWork + = ( sender , args ) = > { } ;    //результат    worker . RunWorkerCompleted + = ( sender , args ) = > { } ;    //запускаем асинхронный процесс    worker . RunWorkerAsync ( ) ; }

    C# { //действие i = 1; }; //запускаем асинхронный процесс 3 6 7 9 10 11 12 public static void someAction ( ref int i ) {    var worker = new BackgroundWorker ( ) ;    //действие    worker . DoWork + = ( sender , args ) = > { } ;    //результат записываем    worker . RunWorkerCompleted + = ( sender , args ) = > {        i = 1 ;    } ;    //запускаем асинхронный процесс    worker . RunWorkerAsync ( ) ; } , то это приведет к ошибке на этапе компиляции, т.к. передача ref/out переменных в анонимные методы запрещена.

    Обойдем это с использованием собственного класса:

    C# } } } 3 4 5 6 7 8 9 10 11 12 14 class Interfaced < T >      {          private T _value ;          public T Value {              get { return _value ; }              set              {                  if ( value . Equals ( _value ) ) return ;                  _value = value ;                  ValueChanged . Invoke ( this , null ) ;              }          }          public EventHandler ValueChanged ;      }

    C# { { } { } 2 3 4 5 6 8 10 13 14 17 18 19 20 21 class Main {      string [ ] strings ;      public Main ( )      {          var iValue = new Interfaced < string [ ] > ( ) ;          iValue . ValueChanged + = ( sender , args ) = >              strings = ( ( Interfaced < String [ ] > ) sender ) . Value ;          Helper . AsyncAction ( iValue ) ;      } }   class Helper {      public static void AsyncAction ( Interfaced < string [ ] > iValue )      {          var worker = new BackgroundWorker ( ) ;          worker . DoWork + = + = ( sender , args ) = > { } ;          worker . RunWorkerCompleted + = ( sender , args )              = > { iValue . Value = new string [ 5 ] ; } ;          worker . RunWorkerAsync ( ) ;      } }

    В данном случае, strings перестанет равняться null в момент завершения асинхронной операции.

    , Апр 10

    Alex Рубрика: ignite

    Управление свободной камерой Автор: Alex ignite

    1 2 3 4 ... Last page (45)





    SITE-MAP