Maison  >  Article  >  Java  >  Geo Viewer dans IntelliJ Idea est cool

Geo Viewer dans IntelliJ Idea est cool

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 01:02:03934parcourir

Bonjour vieil ami

Grâce au Poznań Java User Group qui m'a sélectionné au hasard lors d'une rencontre pour obtenir une licence JetBrains IntelliJ Idea Ultimate, j'ai commencé à l'utiliser quotidiennement. Ce n'est pas un logiciel entièrement nouveau pour moi. J'utilise Android Studio depuis près d'une décennie maintenant, travaillant occasionnellement sur des projets parallèles dans l'édition communautaire d'IntelliJ. Récemment, au travail, j'utilise VS Code et NeoVim. Une philosophie IDE assez différente avec ce dernier.

Il se trouve que je travaille actuellement sur le backend, et IntelliJ est une bête absolue avec des outils intégrés pour tout ce que vous pouvez imaginer.

À côté de la prise en charge habituelle du langage pour TypeScript, SQL et les configurations de build, il existe de jolis outils de base de données. L'affichage des données est similaire à une feuille de calcul Excel, permet le filtrage, peut générer du code DDL, dessiner des diagrammes, etc. Rien de bien spécial ; d'autres outils permettent cela.

Mais c'est juste à l'intérieur de l'EDI, donc c'est facile d'accès sans changer le contexte.

Visionneuse géographique

J'ai remarqué l'outil Geo Viewer par accident.

Geo Viewer in IntelliJ Idea is cool

Je traite certaines données géographiques, comme des zones et des points. Geo Viewer fonctionne immédiatement. Aucun plugin ou configuration n'est requis. Au moins pour Postgres avec configuration Postgis.

Cela peut sembler des visuels inutiles, mais c'est en fait utile pour le débogage. Pensez à avoir une requête qui renvoie les points d'une table, à l'intérieur de la zone définie dans une autre. Comme c'est génial de voir le résultat sur la carte réelle.

Mettons-le au travail

J'ai utilisé ChatGPT pour générer des données pour les voïvodies de Pologne. Ce n'est pas entièrement mauvais... Ils sont un peu aux bons endroits, juste beaucoup trop petits.

Les données pour les emplacements des villes sont correctes.

Geo Viewer in IntelliJ Idea is cool

Pour visualiser les villes et les zones sur une seule vue géographique, j'ai utilisé une simple vue SQL. Je n'ai pas touché à SQL depuis l'université, donc c'est aussi une expérience amusante :D

-- Enable PostGIS extension if not already enabled  
CREATE EXTENSION IF NOT EXISTS postgis;  

-- Create vovoidships table  
CREATE TABLE vovoidships (  
    id SERIAL PRIMARY KEY,  
    name VARCHAR(255) NOT NULL,  
    bounds GEOMETRY NOT NULL  
);  

-- Create cities table  
CREATE TABLE cities (  
    id SERIAL PRIMARY KEY,  
    name VARCHAR(255) NOT NULL,  
    coordinates GEOMETRY NOT NULL  
);  

-- Insert Polish voivodeship capitals into cities table  
INSERT INTO cities (name, coordinates) VALUES  
    ('Warsaw', ST_SetSRID(ST_MakePoint(21.0122, 52.2297), 4326)),  -- Mazowieckie  
    ('Kraków', ST_SetSRID(ST_MakePoint(19.9449, 50.0647), 4326)),  -- Małopolskie  
    ('Łódź', ST_SetSRID(ST_MakePoint(19.456, 51.7592), 4326)),     -- Łódzkie  
    ('Wrocław', ST_SetSRID(ST_MakePoint(17.0385, 51.1079), 4326)), -- Dolnośląskie  
    ('Poznań', ST_SetSRID(ST_MakePoint(16.9286, 52.4064), 4326)),  -- Wielkopolskie  
    ('Gdańsk', ST_SetSRID(ST_MakePoint(18.646, 54.352), 4326)),    -- Pomorskie  
    ('Szczecin', ST_SetSRID(ST_MakePoint(14.5528, 53.4289), 4326)),-- Zachodniopomorskie  
    ('Bydgoszcz', ST_SetSRID(ST_MakePoint(18.0076, 53.1235), 4326)), -- Kujawsko-Pomorskie  
    ('Lublin', ST_SetSRID(ST_MakePoint(22.5686, 51.2465), 4326)),   -- Lubusz  
    ('Białystok', ST_SetSRID(ST_MakePoint(23.1641, 53.1325), 4326)), -- Podlaskie  
    ('Katowice', ST_SetSRID(ST_MakePoint(19.039, 50.2583), 4326)), -- Śląskie  
    ('Opole', ST_SetSRID(ST_MakePoint(17.9213, 50.6644), 4326)),    -- Opolskie  
    ('Rzeszów', ST_SetSRID(ST_MakePoint(21.9981, 50.0415), 4326)),  -- Podkarpackie  
    ('Gorzów Wlkp.', ST_SetSRID(ST_MakePoint(15.2299, 52.7387), 4326)), -- Lubusz  
    ('Zielona Góra', ST_SetSRID(ST_MakePoint(15.5061, 51.9353), 4326)); -- Lubusz  

-- Insert Polish voivodeships into vovoidships table with corrected boundaries  
INSERT INTO vovoidships (name, bounds) VALUES  
    ('Mazowieckie', ST_SetSRID(ST_GeomFromText('POLYGON((20.5937 52.4304, 20.7031 52.2398, 21.0994 52.1985, 21.4855 52.2738, 21.7426 52.5456, 21.4822 52.6935, 20.8778 52.6281, 20.5937 52.4304))'), 4326)),  
    ('Małopolskie', ST_SetSRID(ST_GeomFromText('POLYGON((19.0013 49.6121, 19.3004 49.2235, 19.8534 49.1386, 20.1253 49.2158, 20.3469 49.7248, 20.1154 49.9501, 19.0013 49.6121))'), 4326)),  
    ('Łódzkie', ST_SetSRID(ST_GeomFromText('POLYGON((18.9224 51.6847, 19.5032 51.5472, 19.7415 51.7594, 19.6886 52.0549, 19.1579 52.0201, 18.9224 51.6847))'), 4326)),  
    ('Dolnośląskie', ST_SetSRID(ST_GeomFromText('POLYGON((16.2795 50.1585, 16.6575 49.9253, 17.1573 49.8861, 17.3046 50.3278, 17.1566 50.4869, 16.6676 50.5302, 16.2795 50.1585))'), 4326)),  
    ('Wielkopolskie', ST_SetSRID(ST_GeomFromText('POLYGON((16.4570 52.0254, 16.9745 51.8472, 17.4446 51.8598, 17.8387 52.0295, 17.5519 52.3232, 16.4570 52.0254))'), 4326)),  
    ('Pomorskie', ST_SetSRID(ST_GeomFromText('POLYGON((17.9927 54.0531, 18.7247 54.0065, 18.7840 53.8160, 18.5911 53.7163, 17.9927 54.0531))'), 4326)),  
    ('Zachodniopomorskie', ST_SetSRID(ST_GeomFromText('POLYGON((14.2102 53.4019, 14.8960 53.3481, 15.0853 53.3305, 15.0006 53.0747, 14.2102 53.4019))'), 4326)),  
    ('Kujawsko-Pomorskie', ST_SetSRID(ST_GeomFromText('POLYGON((17.8260 53.0401, 18.2550 52.9635, 19.1827 52.9581, 19.1902 53.1355, 18.0730 53.1274, 17.8260 53.0401))'), 4326)),  
    ('Lubuskie', ST_SetSRID(ST_GeomFromText('POLYGON((14.3215 52.2755, 14.7083 52.2985, 15.0293 52.4335, 15.0641 52.5437, 14.3215 52.2755))'), 4326)),  
    ('Podlaskie', ST_SetSRID(ST_GeomFromText('POLYGON((22.7210 53.6851, 22.9785 53.4699, 23.4987 53.4057, 23.7810 53.6431, 22.7210 53.6851))'), 4326)),  
    ('Śląskie', ST_SetSRID(ST_GeomFromText('POLYGON((18.6704 50.1671, 19.0423 50.1492, 19.3875 50.2675, 19.5927 50.2046, 19.1676 50.0395, 18.6704 50.1671))'), 4326)),  
    ('Opolskie', ST_SetSRID(ST_GeomFromText('POLYGON((17.2070 50.5458, 17.4982 50.3454, 17.7513 50.2998, 17.8897 50.5008, 17.2070 50.5458))'), 4326)),  
    ('Podkarpackie', ST_SetSRID(ST_GeomFromText('POLYGON((21.1791 49.8919, 21.4867 49.8395, 21.9074 49.7579, 22.0595 49.8491, 21.1791 49.8919))'), 4326));  

CREATE VIEW CombinedVoivodeshipsCitiesView AS  
SELECT  
    'Voivodeship' AS type,  
    v.id AS id,  
    v.name AS name,  
    NULL AS latitude,  
    NULL AS longitude,  
    v.bounds AS geometry  
FROM vovoidships v  

UNION ALL  

SELECT  
    'City' AS type,  
    c.id AS id,  
    c.name AS name,  
    ST_Y(c.coordinates) AS latitude,  
    ST_X(c.coordinates) AS longitude,  
    c.coordinates AS geometry  
FROM cities c;

Influencé par la présentation de Kacper Koza lors du dernier JUGtoberfest J'ai commencé à utiliser davantage de raccourcis IntelliJ. Et j'ai désactivé les onglets. Jusqu'ici tout va bien, ma souris se repose un peu.

Quelle est votre dernière découverte dans les outils que vous utilisez ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn