感谢 波兹南 Java 用户组 在一次聚会期间随机选择我来获得 JetBrains IntelliJ Idea Ultimate 许可证,我开始每天使用它。对我来说这并不是全新的软件。我使用 Android Studio 已有近十年了,偶尔会在 IntelliJ 社区版中参与一些副项目。最近在工作中,我一直在使用 VS Code 和 NeoVim。与后者完全不同的 IDE 理念。
我目前恰好在后端工作,IntelliJ 绝对是一个野兽,它的内置工具可以满足您能想象到的一切。
除了对 TypeScript、SQL 和构建配置的常用语言支持之外,还有不错的数据库工具。数据显示类似于Excel电子表格,可以过滤,可以生成DDL代码,画图表等。没什么特别的;其他工具可以实现这一点。
但这只是在 IDE 内部,因此无需更改上下文即可轻松访问。
我偶然注意到了 Geo Viewer 工具。
我正在处理一些地理数据,例如区域和点。 Geo Viewer 开箱即用。不需要插件或配置。至少对于具有 Postgis 设置的 Postgres 来说是这样。
这看起来可能是不必要的视觉效果,但实际上对于调试很有用。想象一下有一个查询从一个表返回另一个表中定义的区域内的点。能在实际地图上看到结果真是太棒了。
我使用 ChatGPT 生成波兰各省的数据。这并不完全是坏事...它们都在正确的位置,只是太小了。
城市位置的数据没问题。
为了在单个地理视图上可视化城市和区域,我使用了一个简单的 SQL 视图。我从大学开始就没有接触过SQL,所以这也是一次有趣的经历: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;
受到 Kacper Koza 上一次 JUGtoberfest 演示的影响,我开始使用更多 IntelliJ 快捷方式。并关闭了标签。到目前为止一切顺利,我的鼠标得到了休息。
以上是IntelliJ Idea 中的 Geo Viewer 很酷的详细内容。更多信息请关注PHP中文网其他相关文章!