Задать вопрос
  • C# Как определить событие по захвату мыши на webbrouser?

    @Hydro
    C#/.NET Developer
    WinForms:
    А как же MouseHover?
    MSDN настойчиво говорит, что событие по захвату мыши есть

    WPF:
    А как же MouseMove?
    MSDN настойчиво говорит, что событие по захвату мыши есть

    UPD: упс, прошу прощения за дезу, на ночь глядя моск отказался думать.

    вот такой код работает

    public Form1()
        {
          InitializeComponent();
          this.webBrowser1.Navigate("http://yandex.ru");
          this.webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
         
        }
    
        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
          this.webBrowser1.Document.Body.MouseOver += this.Body_MouseOver;
        }
    
        void Body_MouseOver(object sender, HtmlElementEventArgs e)
        {
          e.ToString();
        }
    Ответ написан
    2 комментария
  • Как подружить recaptcha 2 и ajax?

    @Tenebrius Автор вопроса
    Ответ оказался проще, чем я думал. Нужно было сериализовать форму и нужное значение добавится.
    Ответ написан
    Комментировать
  • Как настроить Postgresql локально на ubuntu для развертывания на Heroku?

    @exvion Автор вопроса
    Решил проблему - переустановив postgresql, воспользовавшись инструкцией tutorials.jumpstartlab.com/topics/vagrant_setup.html и советом toster.ru/answer?answer_id=281953 от @Whats.
    Ответ написан
    Комментировать
  • Есть ли библиотеки для реализации кластеризации на PHP?

    inside22
    @inside22
    Вот к примеру как я на SQL расчитываю растояние между двумя координатами.

    Высчитам расстоение, можно в принципе и кластеризацию написать на PHP, если надо :-)

    "google maps cluster" - поищите в поисковике, думаю найдете много интересного, как PHP, так и MySQL и JS решения.

    $query = $this->db->query('SELECT
      pan.id,
      ROUND(ATAN(SQRT(POW(COS(RADIANS(pan.latitude)) * SIN(ABS(RADIANS('.$pano->longitude.')-RADIANS(pan.longitude))),2) + POW( COS(RADIANS('.$pano->latitude.')) * SIN(RADIANS(pan.latitude)) - SIN(RADIANS('.$pano->latitude.')) * COS(RADIANS(pan.latitude))*COS(ABS(RADIANS('.$pano->longitude.')-RADIANS(pan.longitude))),2))/(SIN(RADIANS(pan.latitude)) * SIN(RADIANS('.$pano->latitude.')) + COS(RADIANS(pan.latitude)) * COS(RADIANS('.$pano->latitude.'))* COS(ABS(RADIANS('.$pano->longitude.')-RADIANS(pan.longitude))))) * 6373000, 0) AS distance
    FROM pano pan
    WHERE pan.latitude IS NOT NULL
        AND pan.longitude IS NOT NULL
        AND pan.id != '.$pano->id);
    Ответ написан
    Комментировать
  • Есть ли библиотеки для реализации кластеризации на PHP?

    morozovdenis
    @morozovdenis
    если вам не обязательно честную кластеризацию то можно и самому не долго написать:
    предисловие: мною было посчитано что смещение на 0.01 градуса по прямой на нашей планете земля можно считать 1111 метров
    $objects = array(array('lon' => 1, 'lat' => 2), ..., ...);
    $cluster = array();
    $levels = 10;
    $firstRectWidth = 0.01; //самый маленький "квадрат" будет 1111 на 1111
    for ($i = 0; $i < count($objects); $i++)
    {
    $obj = $objects[$i];
    for ($level = 1; $level <= $levels; $level++)
    {
             $lon_index = ($obj->lon) / ($firstRectWidth * (2 ^ $level)); // не помню как степень в php
             $lat_index = ($obj->lat) / ($firstRectWidth * (2 ^ $level)); // не помню как степень в php
             $cluster[$level][$lon_index . "-" . $lat_index][] = $i;
    }
    }
    
    // использование
    
    $zoom = 1..10;
    echo "кластеров ".(count($cluster[$zoom]))."<br >";
    foreach ($cluster[$zoom] as $key => $value)
    {
              echo "область ".$key."<br >";
              echo "кол-во элеметнов ". (count($value));
    }
    Ответ написан
    Комментировать
  • Каким образом хранить большой (2400*1800) двумерный массив в БД?

    Если данные динамические или нужен поиск по ячейкам (всем), то делаем в базе именно такую таблицу 2400*1800. MySQL должен осилить без тормозов.

    Если данные не динамические и поиск по ячейкам не нужен, то лучше использовать файл.
    Ответ написан
    Комментировать
  • Каким образом хранить большой (2400*1800) двумерный массив в БД?

    morozovdenis
    @morozovdenis
    мне кажется привлекательной идея с файлом

    вот как мне это видится(упрощу до 5х5):

    создаём файл размером 25 байт забитый нулями:
    0000000000000000000000000

    и пишем фукнцим считывания/записи массива пусть будет 2х2():
    псевдо код
    bool write(f, char[2][2] data, start_x, start_y, width)
    {
             f_seek(f, start_y * width + start_x);
             f_write(f, data[0]);
             f_seek(f, (start_y + 1) * width + start_x);
             f_write(f, data[1]);
             return true;
    }
    
    char[2][2] read(f, start_x, start_y, width)
    {
             char[2][2] result;
             f_seek(f, start_y * width + start_x);
             result[0] = f_read(f, 2); // читаем два элемента
             f_seek(f, (start_y + 1) * width + start_x);
             result[1] = f_read(f, 2); // читаем два элемента
    }


    тут нет защиты от сбоев

    надр поискать NoSQL базы с возможностью хранить массивы
    Ответ написан
    Комментировать
  • Каким образом хранить большой (2400*1800) двумерный массив в БД?

    @rPman
    Ваша задача очень эффективно решается обычным файлом на диске (открытый с запретом lazy writes, либо принудительным flush после каждой записи). Если инструментарий (язык программирования и библиотеки) позволяет - откройте файл маппингом на память.
    Индекс для таких запросов не нужен, ведь ячейки можно индексировать примитивно - (x+maxx*y). запрос 100x100 блока превращается в 100 быстрых чтений по 100байт. Если это оправдано, можно хранить не ячейки а блоки 100x100, тогда при чтении будет читаться в 4 раза больше данных но четырьмя чтениями. Но если блок данных экрана влезает в буфер опережающего чтения операционной системы (драйвере файловой системы) то такой метод хранения будет неактуален.

    Любой другой метод будет медленный либо по записи (например хранить в базе не ячейки а блоки 100x100, соответственно при запросе блока будут считываться четыре соседних), либо медленный по чтению (хранить по одной записи на ячейку) и не эффективный по месту на диске.
    Ответ написан
    2 комментария
  • Каким образом хранить большой (2400*1800) двумерный массив в БД?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Имхо. Зависит от ваших задач. Я бы остановился на 100х100 .. и вообще зачем вам карту хранить в бд ? Какие выборки ?
    Ответ написан
    Комментировать
  • Как открывать несколько окон PhpStorm с разными проектами?

    begemot_sun
    @begemot_sun
    Программист в душе.
    File -> Open и он сам предложит открыть в новом или текущем окне.
    Ответ написан
    Комментировать