Фотографии также могут достичь GPS-позиционирования? Не выкладывайте фотографии так легко...

Java задняя часть

Эта статья участвовала в приказе о созыве Haowen, нажмите, чтобы просмотреть:Двойные заявки на внутреннюю и внешнюю стороны, призовой фонд в 20 000 юаней ждет вас, чтобы бросить вызов!

предисловие

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

процесс кода

Ниже я распределяю несколько шагов и посмотрите на реализацию кода.

  • Анализировать изображения

Во-первых, введение банки

 <dependency>
     <groupId>com.drewnoakes</groupId>
     <artifactId>metadata-extractor</artifactId>
     <version>2.16.0</version>
 </dependency>

Затем напишите метод для получения подробной информации на картинке, в том числе拍摄时间,位置信息,手机型号Ждать.

//分析图片获取地址
public static  Map<String,String> PicAnalysis(String path) throws JpegProcessingException, 		IOException {
    Map<String,String> map = new HashMap();
    System.out.println("强大的语言正在识别图片地址...");
    File picFile = new File(path);
    Metadata metadata = JpegMetadataReader.readMetadata(picFile);
    Iterator<Directory> it = metadata.getDirectories().iterator();
    while (it.hasNext()) {
        Directory exif = it.next();
        Iterator<Tag> tags = exif.getTags().iterator();
        while (tags.hasNext()) {
            Tag tag = tags.next();
            map.put(tag.getTagName(),tag.getDescription());
            System.out.println(tag.getTagName() + ":" +tag.getDescription());
        }
    }
    System.out.println("图片分析完毕!");
    return map;
}

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

параметр инструкция
Make Производитель продукта
Model Модель устройства
Orientation направление
X Resolution/Y Resolution Разрешение в направлении X / Y
ResolutionUnit Блок разрешения
DateTime Дата и время
Software Версия программного обеспечения
ISO speed ratings Чувствительность
Date/Time Original время создания
Date/Time Digitized цифровое время
Components Configuration Построение изображения (схема сочетания цветов с несколькими пальцами)
Compressed Bits Per Pixel Цветные биты на пиксель во время компрессии относится к степени сжатия
Exposure Bias Value Компенсация экспозиции
Max Aperture Value максимальная апертура
Metering Mode Метод замера, средний замер, центрально-взвешенный замер, точечный замер и т. д.
Flash Использовать ли вспышку
Focal Length Фокусное расстояние, обычно показывающее физическое фокусное расстояние объектива.
Makernote Авторские пометки, примечания, записи
Color Space цветовой охват, цветовое пространство
Exif Image Width Ширина изображения, в пикселях по горизонтали
Exif Image Height Высота изображения в пикселях по вертикали
  • Преобразовать в координаты

Информация, снятая с изображения, представлена ​​в формате градусов, минут и секунд: т.е.30° 14' 32.52", нам нужно преобразовать его в широту и долготу: как121.485559,31.240778, код показан ниже:

public static String translate(String Gps) {
    String a = Gps.split("°")[0].replace(" ", "");
    String b = Gps.split("°")[1].split("'")[0].replace(" ", "");
    String c = Gps.split("°")[1].split("'")[1].replace(" ", "").replace("\"", "");
    double gps = Double.parseDouble(a)+Double.parseDouble(b)/60 + Double.parseDouble(c)/60/60;
    return String.valueOf(gps);
}
  • Открыл последнюю вуаль

После получения конкретных координат до успеха осталось всего полшага.Далее позвоните в Api of Gaode Map, чтобы получить конкретный адрес.

 public static void getAddress( Map<String,String> param){
        String str = RequestUtils.sendGet("https://restapi.amap.com/v3/geocode/regeo", "key=5a3c45fd68d04bbc&location="+translate(param.get("GPS Longitude"))+","+translate(param.get("GPS Latitude")));
        JSONObject result = JSON.parseObject(str);
        System.out.println("拍摄时间:" +param.get("Date/Time"));
        System.out.println("拍摄地点:" +result.getJSONObject("regeocode").getString("formatted_address"));
        System.out.println("手机型号:" +param.get("Make") +" " + param.get("Model"));
        System.out.println(str);
    }

Но сначала мы должны войтиПлатформа для разработчиков карт AutoNavi, Тем, кто не претендует на получение статуса индивидуального разработчика, необходимо подать заявку в первую очередь.Этапы подачи заявки относительно просты.После подачи заявки каждый день будет определенное количество бесплатных звонков, которых достаточно для личного использования.

Ленивая игра

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

  • Ручное преобразование широты и долготы

Открыть URLwww.minigps.net/fc.html, вы можете конвертировать градусы, минуты и секунды в широту и долготу онлайн.

  • Вручную определить координаты

ОткрытымСистема координаты пикапа, введите широту и долготу, полученные на предыдущем шаге, вы можете просмотреть конкретный адрес

image.png

git-адрес

Проект будет загружен на git, и заинтересованные друзья смогут скачать его и попробовать по адресу:GitHub.com/это 57753173…

Наконец

Наконец, чтобы уточнить, Эргоу пока не женат, как могут быть плохие мысли, как может быть девушка, эта история чисто вымышленная, если есть какие-то сходства, эммм.....пока.

Будьте внимательны, чтобы не потерять

Выше приведено все содержание этого вопроса,Если есть какие-либо ошибки, пожалуйста, оставьте сообщение для совета, большое спасибо. Я Хуа Джи. Если у вас есть какие-либо вопросы, не стесняйтесь оставлять сообщение для обсуждения. До встречи в следующем выпуске 🦮.

Статья постоянно обновляется, вы можете искать в WeChatРазработка на Java ноль к одномуПрочтите это в первый раз и получите егоУчебное видео по материалам интервьюПодождите, заинтересованные друзья могут обратить внимание, учиться вместе и работать вместе 🐮🥃.

Оригинальность – это непросто, как можно терпеть проститутку даром?, если вы считаете, что эта статья вам полезна, спасибо старому железяку за эту статью点个赞、评论或转发一下, потому что это будет моя мотивация для вывода более качественных статей, спасибо!