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

Нет ответов
получить координаты для карт того или иного объекта вручную геокодирование .

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

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

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

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

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

Нет ответов

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

X и Y – это значения широты и долготы. Существует несколько способов их получения. Сегодня я расскажу о самом прямолинейном и простом из них – ручном поиске. Он идеально подходит, если вы заранее знаете какие объекты вы хотите выделить и их количество не слишком велико. Для реализации этого метода нам потребуется ВикиМапия -  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]--> 3 <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 <div style = "height=150px;" id = "map" > </div>

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

JavaScript var map = L . map ( 'map' ) . setView ( [ x , y ] , z ) ; Присваиваем слой с картой: JavaScript 2 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(); 2 L . marker ( [ x , y ] ) . addTo ( map )      . bindPopup ( 'A pretty CSS3 popup. <br> Easily customizable.' )      . openPopup ( ) ;

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

Alex Рубрика: web

Нет ответов

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

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

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

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

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

Поддержка устаревших браузеров Для поддержки устаревших браузеров (в первую очередь под этой фразой следует понимать IE7+) будем использовать javasript-библиотеку html5media.js, которая будет создавать flash видеоплеер для случая устаревшего браузера:

XHTML <script src="http://api.html5media.info/1.1.5/html5media.min.js"></script> <body> </body> 1 2 3 4 6      <head>          <script src = "http://api.html5media.info/1.1.5/html5media.min.js" > </script>      </head>      <body>          <video src = "video.mp4" width = height = > </video>      </body> Добавляем закрывающий тег На данный момент наш проигрыватель поддерживает следующие браузеры: Поддержка слабых мобильных устройств

XHTML <script src="http://api.html5media.info/1.1.5/html5media.min.js"></script> <body> </body> 1 6 7 10      <head>          <script src = "http://api.html5media.info/1.1.5/html5media.min.js" > </script>      </head>      <body>          <video src = "video.mp4" width = 640 height = >              <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
  • Firefox
  • Nancy Framework июня 8

    Alex web Нет ответов

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

    http://nancyfx.org/

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

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

    Готово! , Aurora.js – аудио фреймворк для web

    июня 8

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

    Демо

    Исходники Планы и всякое

    Апр 24 Alex ignite

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

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

    C# 1 var a = someAction ( ) ;

    C# } 4 5 6 8 10 public static void someAction ( ) {    var worker = new BackgroundWorker ( ) ;    //действие    worker . DoWork + = ( sender , args ) = > { } ;    //результат    worker . RunWorkerCompleted + = ( sender , args ) = > { } ;    //запускаем асинхронный процесс    worker . RunWorkerAsync ( ) ; } C# //результат записываем i = 1; }; 1 3 4 5 6 8 10 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# } } } 3 4 6 7 10 11 12 13 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# { } } { 3 4 6 7 8 10 14 21 22 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)