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

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

Для того, чтобы воспользоваться веб сервисом, нужно послать запрос на сервер Google следующего вида: C# http : //maps.google.com/maps/api/geocode/[type]?address=[address]&sensor=false

C# http : //maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false вам приходит ответ следующего вида (json): C# { "results" : [ "geometry" : { "lng" : -122.08506470 }, } 4 7 9 10 11 12 13 14 {    "results" : [        {          "address_components" : [ . . . ] ,          "formatted_address" : "1600 Амфитеатр-Паркуэй, Маунтин-Вью, Калифорния 94043, Соединённые Штаты Америки" ,          "geometry" : {              "location" : {                "lat" : 37.42285760 ,                "lng" : - 122.08506470              } ,                       } ,                 }    ] , }

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

Автор: Alex web

Нет ответов

Вчера я рассказывал об использовании замечательной библиотеки leaflet карты бесплатных Wi-Fi источников . X и Y – это значения широты и долготы. Существует несколько способов их получения. Сегодня я расскажу о самом прямолинейном и простом из них – ручном поиске. Он идеально подходит, если вы заранее знаете какие объекты вы хотите выделить и их количество не слишком велико. Для реализации этого метода нам потребуется ВикиМапия -  http://wikimapia.org/

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

JavaScript L . marker ( [ 37.6200783 , - 89.5172882 ] ) . addTo ( map ) ;

,
leaflet – создание карт для web

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

Нет ответов У меня уже запущен один проект, который базируется исключительно на этой библиотеке – это интерактивная карта бесплатных точек Wi-Fi в городе Донецке .

XHTML <!--[if lte IE 8]> <![endif]--> 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>

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

JavaScript 1 var map = L . map ( 'map' ) . setView ( [ x , y ] , z ) ;

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

JavaScript 1 3 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 .openPopup(); 3 L . marker ( [ x , y ] ) . addTo ( map )      . bindPopup ( 'A pretty CSS3 popup. <br> Easily customizable.' )      . openPopup ( ) ;

, ,

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

июня 9

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

Как встроить видео на сайт? Короткий ответ – воспользуйтесь Youtube или Vimeo. Там работают чрезвычайно умные люди, которые уже решили совершенно все проблемы, которые могут возникнуть при встраивании видео на сайт.

Как это сделать без помощи сторонних сервисов? Существует 4 основных группы людей, которые будут смотреть видео у вас на сайте:
  • В оставшейся части этого поста я уделю внимание тому, как можно осуществить поддержку всех этих устройств и браузеров у себя на сайте.

    XHTML <video src = "video.mp4" = 640 height = 360 controls >

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

    Добавляем закрывающий тег На данный момент наш проигрыватель поддерживает следующие браузеры:

    Поддержка браузеров с open source кодеками XHTML <script src="http://api.html5media.info/1.1.5/html5media.min.js"></script> <body> </body> 3 5 7 9      <head>          <script src = "http://api.html5media.info/1.1.5/html5media.min.js" > </script>      </head>      <body>          <video src = "video.mp4" = 640 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> 4 7 8 9 10      <head>          <script src = "http://api.html5media.info/1.1.5/html5media.min.js" > </script>      </head>      <body>          <video src = "video.mp4" = 640 height = 360 >              <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
  • IE9+ Firefox
  • У меня все еще, что-то не работает

    , Nancy Framework

    Автор: Alex web Нет ответов

    http://nancyfx.org/

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

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

    Нет ответов

    Демо

    Исходники

    , Планы и всякое

    Alex Рубрика: ignite

    С 2009-го года я был в свободном плавании – будучи некрасиво уволенным по сокращению с предыдущего места работы, я не нашел ничего лучшего, чем открыть субъект предпринимательской деятельности и продолжить работать самостоятельно, на себя. Дела шли неплохо, но этот пост не про это, как и не про то, как в нашем государстве(Украина) способствуют развитию мелкого бизнеса. Скажу только, что к 2013-му году работать стало окончательно невозможно, и я начал искать работу программиста на стороне.

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

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

    Alex программирование

    Иногда при программировании сталкиваешься с задачей, которая выполняется длительное время. Обычно такие операции выполняют в отдельном потоке, чтобы не мешать ходу работы программы – таким образом решается проблема недоступности потока программы во время выполнения длительной операции, однако тут же возникает проблема синхронизации полученных в результате длительных вычислений данных с данными программы. Тут не работает привычная присваивания:

    C# 1 var a = someAction ( ) ; C# //действие //результат 2 5 7 8 public static void someAction ( ) {    var worker = new BackgroundWorker ( ) ;    //действие    worker . DoWork + = ( sender , args ) = > { } ;    //результат    worker . RunWorkerCompleted + = ( sender , args ) = > { } ;    //запускаем асинхронный процесс    worker . RunWorkerAsync ( ) ; }

    C# { //результат записываем i = 1; } 1 2 7 8 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 ( ) ; }

    C# set } 1 2 4 6 7 10 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# { string[] strings; } } { 2 3 4 5 7 9 10 11 14 15 17 18 19 20 21 22 23 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 ( ) ;      } } Alex Рубрика: ignite Управление свободной камерой

    марта 11

    Alex ignite

    1 2 3 4 Last page (45)