Добавить маркер в вашу программу очень просто. Вы можете добавить этот код:
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
Обычно вы должны иметь этот результат:
Попробуйте 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, чтобы проверить ее.
Если вы имеете дело с массивом символов 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 "
Есть:
Console cons;
char[] passwd;
if ((cons = System.console()) != null &&
(passwd = cons.readPassword("[%s]", "Password:")) != null) {
...
java.util.Arrays.fill(passwd, ' ');
}
, но я не думаю, что это работает с IDE, например Eclipse, потому что программа запускается как фоновый процесс, а не процесс верхнего уровня с консольным окном.
Другим подходом является использование JPasswordField
в swing с помощью метода actionPerformed
:
public void actionPerformed(ActionEvent e) {
...
char [] p = pwdField.getPassword();
}
JLine 2 может представлять интерес. Помимо маскировки символов, он предоставит средства для завершения, редактирования и истории командной строки. Следовательно, это очень полезно для Java-инструмента на основе CLI.
Чтобы скрыть свой вход:
String password = new jline.ConsoleReader().readLine(new Character('*'));
Класс Console имеет метод readPassword()
, который может решить вашу проблему.
Да, может быть сделано. Это называется маскировкой ввода в командной строке. Вы можете реализовать это легко.
Вы можете использовать отдельный поток, чтобы стереть эхо-символы по мере их ввода и заменять их звездочками. Это делается с использованием класса 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;
}
}
, эта ссылка подробно обсуждается.