Добавьте определенное пользователем место в поле ввода, нажав кнопку, чтобы остановить геокомплектацию

#android #jquery #google-maps #cordova #geolocation

#Android #jquery #google-карты #кордова #геолокация

Вопрос:

Мое требование — ввести название места в текстовое поле и показать его на карте, поэтому я использовал geocomplete js, который хорошо работает.

Теперь мой пользователь должен иметь возможность вводить пользовательские места, такие как «мой дом», для этого мне нужно удалить геокомплектацию, нажав кнопку «x» в верхней части карты.

Как я могу это реализовать?

Заранее спасибо

Комментарии:

1. пожалуйста, сделайте попытку решить эту проблему.

2. Да, я перепробовал много вариантов. Теперь я собираюсь настроить плагин. Будет обновляться после завершения. Спасибо

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

4. Требование перенесено на следующую неделю. Так будет обновляться, когда это будет сделано. Спасибо.

Ответ №1:

Я бы не стал настраивать пакет!Когда выйдет новая версия, вам придется внести те же изменения, что и раньше.

Поскольку вы не предоставили никакого кода, я могу дать вам представление о том, что я сделал с переопределением метода проверки jQuery.

Вам просто нужно найти слушателя (что-то вроде $('#listenToThis').on('click', function(){ doThings(); } ) в geocomplete.js файл, затем переопределите его в файле, который включается после геокомплектации.

Если вы используете пакеты, просто включите свой файл после определения ответа прослушивателя geocomplete.

Итак, после того, как вы их найдете, вы можете сделать что-то похожее на следующее:

 $.validator.methods.number = function (value, element) {
    value = floatValue(value);
    return this.optional(element) || /^-?(?:d |d{1,3}(?:[s.,]d{3}) )(?:[.,]d )?$/.test(value);
}
 

Приведенная выше функция позволила мне проверять номера на стороне клиента, которые были отформатированы как валюта в jQuery ($).

Это переопределяет функцию jQuery.validator.methods.number (мошеннический способ переопределения функции без изменения кода пакета), поэтому, если вы можете точно определить функцию geocomplete.addSomethingToMap или geocomplete.reactToClick, вы должны переопределить ее, и она, по сути, будет работать именно так.

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