Есть ли эквивалент read -s bash в Clojure / Java? [Дубликат]

Добавить маркер в вашу программу очень просто. Вы можете добавить этот код:

var marker = new google.maps.Marker({
  position: myLatLng,
  map: map,
  title: 'Hello World!'
});

Следующие поля особенно важны и обычно устанавливаются при создании маркера:

  • position (обязательно ) определяет LatLng, определяющий начальное местоположение маркера. Один из способов получения LatLng - использование службы геокодирования .
  • map (необязательно) указывает карту, по которой нужно поместить маркер. Если вы не укажете карту при построении маркера, маркер будет создан, но не будет привязан к карте (или отображен). Вы можете добавить маркер позже, вызвав метод setMap() маркера.

Обратите внимание: в этом примере поле заголовка задает заголовок маркера, который будет отображаться как всплывающая подсказка.

Здесь вы можете ознакомиться с Google api documenation здесь .


Это полный пример установки маркера one на карте. Будьте внимательны, вам нужно заменить YOUR_API_KEY на ваш ключ API google :




   
   
   Simple markers



 


Теперь, если вы хотите вы должны сделать вот так:

var locations = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
  ['Coogee Beach', -33.923036, 151.259052, 5],
  ['Cronulla Beach', -34.028249, 151.157507, 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
  ['Maroubra Beach', -33.950198, 151.259302, 1]
];

function initMap() {
  var myLatLng = {lat: -33.90, lng: 151.16};

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 10,
    center: myLatLng
    });

  var count;

  for (count = 0; count < locations.length; count++) {  
    new google.maps.Marker({
      position: new google.maps.LatLng(locations[count][1], locations[count][2]),
      map: map,
      title: locations[count][0]
      });
   }
}

В этом примере дайте мне следующий результат:


Вы также можете добавить инфо-окно в свой вывод. Вам просто нужен этот код:

var marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[count][1], locations[count][2]),
    map: map
    });

marker.info = new google.maps.InfoWindow({
    content: 'Hello World!'
    });

Здесь вы можете найти документацию Google о infoWindows здесь .


Теперь мы можем открыть инфо-окно когда маркер «clik» выглядит следующим образом:

var marker = new google.maps.Marker({
     position: new google.maps.LatLng(locations[count][1], locations[count][2]),
     map: map
     });

marker.info = new google.maps.InfoWindow({
     content: locations [count][0]
     });


google.maps.event.addListener(marker, 'click', function() {  
    // this = marker
    var marker_map = this.getMap();
    this.info.open(marker_map, this);
    // Note: If you call open() without passing a marker, the InfoWindow will use the position specified upon construction through the InfoWindowOptions object literal.
            });

Обратите внимание, что вы можете иметь документацию о Listener здесь в разработчике Google.


И, наконец, мы можем построить infoWindow в маркере, если пользователь нажмет на него. Это мой полный код:




    
    
    Info windows
    


    

Обычно вы должны иметь этот результат:

53
задан kentcdodds 30 May 2012 в 16:31
поделиться

6 ответов

Попробуйте java.io.Console.readPassword . Вы должны будете работать хотя бы на Java 6.

   /**
    * Reads a password or passphrase from the console with echoing disabled
    *
    * @throws IOError
    *         If an I/O error occurs.
    *
    * @return  A character array containing the password or passphrase read
    *          from the console, not including any line-termination characters,
    *          or <tt>null</tt> if an end of stream has been reached.
    */
    public char[] readPassword() {
        return readPassword("");
    }

Остерегайтесь, однако, этот не работает с консолью Eclipse. Вам нужно будет запустить программу из true console / shell / terminal / prompt, чтобы проверить ее.

78
ответ дан adarshr 27 August 2018 в 06:58
поделиться

Если вы имеете дело с массивом символов Java (например, с символами пароля, которые вы читаете с консоли), вы можете преобразовать его в строку JRuby со следующим кодом Ruby:

# GIST: "pw_from_console.rb" under "https://gist.github.com/drhuffman12"

jconsole = Java::java.lang.System.console()
password = jconsole.readPassword()
ruby_string = ''
password.to_a.each {|c| ruby_string << c.chr}

# .. do something with 'password' variable ..    
puts "password_chars: #{password_chars.inspect}"
puts "password_string: #{password_string}"

См. Также « https://stackoverflow.com/a/27628738/4390019 » и « https://stackoverflow.com/a/27628756/4390019 "

11
ответ дан Community 27 August 2018 в 06:58
поделиться

Есть:

Console cons;
char[] passwd;
if ((cons = System.console()) != null &&
    (passwd = cons.readPassword("[%s]", "Password:")) != null) {
    ...
    java.util.Arrays.fill(passwd, ' ');
}

source

, но я не думаю, что это работает с IDE, например Eclipse, потому что программа запускается как фоновый процесс, а не процесс верхнего уровня с консольным окном.

Другим подходом является использование JPasswordField в swing с помощью метода actionPerformed:

public void actionPerformed(ActionEvent e) {
    ...
    char [] p = pwdField.getPassword();
}

источник

3
ответ дан Dhruv Gairola 27 August 2018 в 06:58
поделиться

JLine 2 может представлять интерес. Помимо маскировки символов, он предоставит средства для завершения, редактирования и истории командной строки. Следовательно, это очень полезно для Java-инструмента на основе CLI.

Чтобы скрыть свой вход:

String password = new jline.ConsoleReader().readLine(new Character('*'));
7
ответ дан Gareth Davis 27 August 2018 в 06:58
поделиться

Класс Console имеет метод readPassword(), который может решить вашу проблему.

0
ответ дан rlinden 27 August 2018 в 06:58
поделиться

Да, может быть сделано. Это называется маскировкой ввода в командной строке. Вы можете реализовать это легко.

Вы можете использовать отдельный поток, чтобы стереть эхо-символы по мере их ввода и заменять их звездочками. Это делается с использованием класса EraserThread, показанного ниже

import java.io.*;

class EraserThread implements Runnable {
   private boolean stop;

   /**
    *@param The prompt displayed to the user
    */
   public EraserThread(String prompt) {
       System.out.print(prompt);
   }

   /**
    * Begin masking...display asterisks (*)
    */
   public void run () {
      stop = true;
      while (stop) {
         System.out.print("\010*");
     try {
        Thread.currentThread().sleep(1);
         } catch(InterruptedException ie) {
            ie.printStackTrace();
         }
      }
   }

   /**
    * Instruct the thread to stop masking
    */
   public void stopMasking() {
      this.stop = false;
   }
}

. Используя этот поток

public class PasswordField {

   /**
    *@param prompt The prompt to display to the user
    *@return The password as entered by the user
    */
   public static String readPassword (String prompt) {
      EraserThread et = new EraserThread(prompt);
      Thread mask = new Thread(et);
      mask.start();

      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      String password = "";

      try {
         password = in.readLine();
      } catch (IOException ioe) {
        ioe.printStackTrace();
      }
      // stop masking
      et.stopMasking();
      // return the password entered by the user
      return password;
   }
}

, эта ссылка подробно обсуждается.

11
ответ дан Community 27 August 2018 в 06:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: