@hebcal/geo-sqlite 4.3.0 → 4.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +102 -62
- package/dist/index.mjs +102 -62
- package/geo-sqlite.d.ts +13 -1
- package/package.json +13 -13
- package/zips-dummy.sql +4 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/geo-sqlite v4.
|
|
1
|
+
/*! @hebcal/geo-sqlite v4.4.2 */
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -19,7 +19,7 @@ var events__default = /*#__PURE__*/_interopDefaultLegacy(events);
|
|
|
19
19
|
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
20
20
|
var readline__default = /*#__PURE__*/_interopDefaultLegacy(readline);
|
|
21
21
|
|
|
22
|
-
var Ashdod=295629;var Atlanta=4180439;var Austin=4671654;var Baghdad=98182;var Baltimore=4347778;var Berlin=2950159;var Bogota=3688689;var Boston=4930956;var Buffalo=5110629;var Chicago=4887398;var Cincinnati=4508722;var Cleveland=5150529;var Dallas=4684888;var Denver=5419384;var Detroit=4990729;var Eilat=295277;var Gibraltar=2411585;var Haifa=294801;var Hawaii=5856195;var Houston=4699066;var Jerusalem=281184;var Johannesburg=993800;var Kiev=703448;var Livingston=5100572;var London=2643743;var Melbourne=2158177;var Miami=4164138;var Montreal=6077243;var Moscow=524901;var Omaha=5074472;var Ottawa=6094817;var Paris=2988507;var Philadelphia=4560349;var Phoenix=5308655;var Pittsburgh=5206379;var Seattle=5809844;var Sydney=2147714;var Tiberias=293322;var Toronto=6167865;var Vancouver=6173331;var city2geonameid = {"AD-Andorra La Vella":3041563,"AE-Abu Dhabi":292968,"AE-Dubai":292223,"AF-Kabul":1138958,"AI-The Valley":3573374,"AL-Tirana":3183875,"AM-Yerevan":616052,"AO-Luanda":2240449,"AR-Buenos Aires":3435910,"AR-Cordoba":3860259,"AR-Rosario":3838583,"AS-Pago Pago":5881576,"AT-Vienna":2761369,"AU-Adelaide":2078025,"AU-Brisbane":2174003,"AU-Canberra":2172517,"AU-Gold Coast":2165087,"AU-Hobart":2163355,"AU-Melbourne":2158177,"AU-Perth":2063523,"AU-Sydney":2147714,"AW-Oranjestad":3577154,"AZ-Baku":587084,Ashdod:Ashdod,Atlanta:Atlanta,Austin:Austin,"BA-Sarajevo":3191281,"BB-Bridgetown":3374036,"BD-Chittagong":1205733,"BD-Dhaka":1185241,"BD-Khulna":1336135,"BE-Brussels":2800866,"BF-Ouagadougou":2357048,"BG-Sofia":727011,"BH-Manama":290340,"BI-Bujumbura":425378,"BJ-Porto-novo":2392087,"BM-Hamilton":3573197,"BN-Bandar Seri Begawan":1820906,"BO-La Paz":3911925,"BO-Santa Cruz de la Sierra":3904906,"BR-Belo Horizonte":3470127,"BR-Brasilia":3469058,"BR-Fortaleza":3399415,"BR-Rio de Janeiro":3451190,"BR-Salvador":3450554,"BR-Sao Paulo":3448439,"BS-Nassau":3571824,"BT-Thimphu":1252416,"BW-Gaborone":933773,"BY-Minsk":625144,"BZ-Belmopan":3582672,Baghdad:Baghdad,Baltimore:Baltimore,"Be'er Sheva":295530,"Beer Sheva":295530,"Bene Beraq":295514,"IL-Bene Beraq":295514,Berlin:Berlin,"Bnei Brak":295514,Bogota:Bogota,Boston:Boston,"Buenos Aires":3435910,Buffalo:Buffalo,"CA-Calgary":5913490,"CA-Edmonton":5946768,"CA-Halifax":6324729,"CA-Mississauga":6075357,"CA-Montreal":6077243,"CA-Ottawa":6094817,"CA-Quebec City":6325494,"CA-Regina":6119109,"CA-Saskatoon":6141256,"CA-St. John's-05":6324733,"CA-Toronto":6167865,"CA-Vancouver":6173331,"CA-Victoria":6174041,"CA-Winnipeg":6183235,"CD-Kinshasa":2314302,"CD-Lubumbashi":922704,"CF-Bangui":2389853,"CG-Brazzaville":2260535,"CH-Bern":2661552,"CH-Geneva":2660646,"CH-Zurich":2657896,"CI-Abidjan":2293538,"CI-Yamoussoukro":2279755,"CK-Avarua":4035715,"CL-Santiago":3871336,"CM-Douala":2232593,"CM-Yaounde":2220957,"CN-Beijing":1816670,"CN-Chengdu":1815286,"CN-Chongqing":1814906,"CN-Guangzhou":1809858,"CN-Harbin":2037013,"CN-Kaifeng":1804879,"CN-Lanzhou":1804430,"CN-Nanchong":1800146,"CN-Nanjing":1799962,"CN-Puyang":1798422,"CN-Shanghai":1796236,"CN-Shenyang":2034937,"CN-Shenzhen":1795565,"CN-Shiyan":1794903,"CN-Tai'an":1793724,"CN-Tianjin":1792947,"CN-Wuhan":1791247,"CN-Xi'an":1790630,"CN-Yueyang":1927639,"CN-Zhumadian":1783873,"CO-Barranquilla":3689147,"CO-Bogota":3688689,"CO-Bogotá":3688689,"CO-Cali":3687925,"CO-Medellin":3674962,"CR-San Jose":3621849,"CR-San José":3621849,"CR-San José":3621849,"CU-Havana":3553478,"CV-Praia":3374333,"CW-Willemstad":3513090,"CY-Nicosia":146268,"CZ-Prague":3067696,Chicago:Chicago,Cincinnati:Cincinnati,Cleveland:Cleveland,"DE-Berlin":2950159,"DE-Hamburg":2911298,"DE-Munich":2867714,"DK-Copenhagen":2618425,"DM-Roseau":3575635,"DO-Santiago de los Caballeros":3492914,"DO-Santo Domingo":3492908,"DZ-Algiers":2507480,Dallas:Dallas,Denver:Denver,Detroit:Detroit,"EC-Guayaquil":3657509,"EC-Quito":3652462,"EE-Tallinn":588409,"EG-Al Jizah":360995,"EG-Alexandria":361058,"EG-Cairo":360630,"ER-Asmara":343300,"ES-Barcelona":3128760,"ES-Madrid":3117735,"ET-Addis Ababa":344979,Eilat:Eilat,"FI-Helsinki":658225,"FJ-Suva":2198148,"FK-Stanley":3426691,"FO-Tórshavn":2611396,"FR-Marseilles":2995469,"FR-Paris":2988507,"GA-Libreville":2399697,"GB-Belfast":2655984,"GB-Birmingham":2655603,"GB-Bristol":2654675,"GB-Cardiff":2653822,"GB-Edinburgh":2650225,"GB-Glasgow":2648579,"GB-Leeds":2644688,"GB-Liverpool":2644210,"GB-London":2643743,"GB-Manchester":2643123,"GB-Sheffield":2638077,"GE-Tbilisi":611717,"GH-Accra":2306104,"GH-Kumasi":2298890,"GI-Gibraltar":2411585,"GL-Nuuk":3421319,"GM-Banjul":2413876,"GN-Camayenne":2422488,"GN-Conakry":2422465,"GQ-Malabo":2309527,"GR-Athens":264371,"GT-Guatemala City":3598132,"GW-Bissau":2374775,"GY-Georgetown":3378644,Gibraltar:Gibraltar,"HK-Hong Kong":1819729,"HN-Tegucigalpa":3600949,"HR-Zagreb":3186886,"HT-Port-au-Prince":3718426,"HU-Budapest":3054643,Haifa:Haifa,Hawaii:Hawaii,Houston:Houston,"ID-Bandung":1650357,"ID-Bekasi":1649378,"ID-Depok":1645518,"ID-Jakarta":1642911,"ID-Makassar":1622786,"ID-Medan":1214520,"ID-Palembang":1633070,"ID-Semarang":1627896,"ID-South Tangerang":8581443,"ID-Surabaya":1625822,"ID-Tangerang":1625084,"IE-Dublin":2964574,"IL-Ashdod":295629,"IL-Ashkelon":295620,"IL-Ashqelon":295620,"IL-Bat Yam":295548,"IL-Be'er Sheva":295530,"IL-Beer Sheva":295530,"IL-Beit Shemesh":295432,"IL-Bet Shemesh":295432,"IL-Bnei Brak":295514,"IL-Eilat":295277,"IL-Hadera":294946,"IL-Haifa":294801,"IL-Herzliya":294778,"IL-Herzliyya":294778,"IL-Holon":294751,"IL-Jerusalem":281184,"IL-Kfar Saba":294514,"IL-Lod":294421,"IL-Modiin":282926,"IL-Nazareth":294098,"IL-Netanya":294071,"IL-Petach Tikvah":293918,"IL-Petah Tikvah":293918,"IL-Petah Tiqwa":293918,"IL-Ra'anana":293807,"IL-Raanana":293807,"IL-Ramat Gan":293788,"IL-Ramla":293768,"IL-Rishon LeZion":293703,"IL-Rishon Leziyyon":293703,"IL-Tel Aviv":293397,"IL-Tiberias":293322,"IM-Douglas":3042237,"IN-Ahmadabad":1279233,"IN-Bangalore":1277333,"IN-Bombay":1275339,"IN-Calcutta":1275004,"IN-Chennai":1264527,"IN-Cochin":1273874,"IN-Hyderabad":1269843,"IN-Jaipur":1269515,"IN-Kanpur":1267995,"IN-New Delhi":1261481,"IN-Pune":1259229,"IN-Surat":1255364,"IQ-Baghdad":98182,"IR-Tehran":112931,"IS-Reykjavik":3413829,"IS-Reykjavík":3413829,"IT-Milano":3173435,"IT-Rome":3169070,"JM-Kingston":3489854,"JO-Amman":250441,"JP-Kobe-shi":1859171,"JP-Kyoto":1857910,"JP-Nagoya-shi":1856057,"JP-Osaka-shi":1853909,"JP-Sapporo":2128295,"JP-Tokyo":1850147,Jerusalem:Jerusalem,Johannesburg:Johannesburg,"KE-Nairobi":184745,"KG-Bishkek":1528675,"KH-Phnom Penh":1821306,"KM-Moroni":921772,"KN-Basseterre":3575551,"KP-Pyongyang":1871859,"KR-Busan":1838524,"KR-Seoul":1835848,"KW-Kuwait":285787,"KY-George Town":3580661,"KZ-Almaty":1526384,"KZ-Astana":1526273,Kiev:Kiev,"LA-Vientiane":1651944,"LB-Beirut":276781,"LC-Castries":3576812,"LI-Vaduz":3042030,"LR-Monrovia":2274895,"LS-Maseru":932505,"LT-Vilnius":593116,"LU-Luxemburg":2960316,"LV-Riga":456172,"LY-Tripoli":2210247,"La Paz":3911925,Livingston:Livingston,London:London,"Los Angeles":5368361,"MA-Casablanca":2553604,"MA-Rabat":2538475,"MD-Chisinau":618426,"ME-Podgorica":3193044,"MG-Antananarivo":1070940,"MK-Skopje":785842,"ML-Bamako":2460596,"MM-Mandalay":1311874,"MM-Rangoon":1298824,"MN-Ulaanbaatar":2028462,"MP-Saipan":7828758,"MR-Nouakchott":2377450,"MS-Plymouth":3578069,"MT-Valletta":2562305,"MU-Port Louis":934154,"MW-Lilongwe":927967,"MX-Cancun":3531673,"MX-Guadalajara":4005539,"MX-Iztapalapa":3526683,"MX-Mazatlan":3996322,"MX-Mexico City":3530597,"MX-Monterrey":3995465,"MX-Puerto Vallarta":3991328,"MX-Tijuana":3981609,"MY-Kota Bharu":1736376,"MY-Kuala Lumpur":1735161,"MZ-Maputo":1040652,Melbourne:Melbourne,"Mexico City":3530597,Miami:Miami,Montreal:Montreal,Moscow:Moscow,"NA-Windhoek":3352136,"NC-Noumea":2139521,"NC-Nouméa":2139521,"NE-Niamey":2440485,"NG-Abuja":2352778,"NG-Lagos":2332459,"NI-Managua":3617763,"NL-Amsterdam":2759794,"NO-Oslo":3143244,"NP-Kathmandu":1283240,"NU-Alofi":4036284,"NZ-Auckland":2193733,"NZ-Christchurch":2192362,"NZ-Wellington":2179537,"New York":5128581,"OM-Muscat":287286,Omaha:Omaha,Ottawa:Ottawa,"PA-Panama City":3703443,"PE-Lima":3936456,"PF-Papeete":4033936,"PG-Port Moresby":2088122,"PH-Manila":1701668,"PK-Islamabad":1176615,"PK-Karachi":1174872,"PL-Warsaw":756135,"PR-San Juan":4568127,"PT-Lisbon":2267057,"PY-Asuncion":3439389,"Panama City":3703443,Paris:Paris,"Petach Tikvah":293918,"Petah Tikvah":293918,"Petah Tikva":293918,"Petah Tiqwa":293918,"Petaẖ Tiqwa":293918,Philadelphia:Philadelphia,Phoenix:Phoenix,Pittsburgh:Pittsburgh,"QA-Doha":290030,"RO-Bucharest":683506,"RS-Belgrade":792680,"RU-Moscow":524901,"RU-Novosibirsk":1496747,"RU-Saint Petersburg":498817,"RU-Yekaterinburg":1486209,"RW-Kigali":202061,"Ra'anana":293807,"SA-Jeddah":105343,"SA-Mecca":104515,"SA-Medina":109223,"SA-Riyadh":108410,"SB-Honiara":2108502,"SC-Victoria":241131,"SD-Khartoum":379252,"SD-Omdurman":365137,"SE-Stockholm":2673730,"SG-Singapore":1880252,"SH-Jamestown":3370903,"SI-Ljubljana":3196359,"SK-Bratislava":3060972,"SL-Freetown":2408770,"SN-Dakar":2253354,"SO-Mogadishu":53654,"SR-Paramaribo":3383330,"ST-Sao Tome":2410763,"ST-São Tomé":2410763,"SV-San Salvador":3583361,"SY-Aleppo":170063,"SY-Damascus":170654,"SZ-Mbabane":934985,"Saint Louis":4407066,"Saint Petersburg":498817,"San Francisco":5391959,Seattle:Seattle,Sydney:Sydney,"TC-Cockburn Town":3576994,"TD-Ndjamena":2427123,"TG-Lome":2365267,"TG-Lomé":2365267,"TH-Bangkok":1609350,"TJ-Dushanbe":1221874,"TM-Ashgabat":162183,"TN-Tunis":2464470,"TR-Adana":325363,"TR-Ankara":323786,"TR-Bursa":750269,"TR-Istanbul":745044,"TR-Izmir":311046,"TV-Funafuti":2110394,"TW-Kaohsiung":1673820,"TW-Taipei":1668341,"TZ-Dar es Salaam":160263,"TZ-Dodoma":160196,"Tel Aviv":293397,Tiberias:Tiberias,Toronto:Toronto,"UA-Kharkiv":706483,"UA-Kiev":703448,"UG-Kampala":232422,"US-Atlanta-GA":4180439,"US-Austin-TX":4671654,"US-Baltimore-MD":4347778,"US-Boston-MA":4930956,"US-Buffalo-NY":5110629,"US-Chicago-IL":4887398,"US-Cincinnati-OH":4508722,"US-Cleveland-OH":5150529,"US-Columbus-OH":4509177,"US-Dallas-TX":4684888,"US-Denver-CO":5419384,"US-Detroit-MI":4990729,"US-Hartford-CT":4835797,"US-Honolulu-HI":5856195,"US-Houston-TX":4699066,"US-Lakewood-NJ":5100280,"US-Las Vegas-NV":5506956,"US-Livingston-NY":5100572,"US-Los Angeles-CA":5368361,"US-Memphis-TN":4641239,"US-Miami-FL":4164138,"US-Milwaukee-WI":5263045,"US-Monsey-NY":5127315,"US-New Haven-CT":4839366,"US-New York-NY":5128581,"US-Omaha-NE":5074472,"US-Orlando-FL":4167147,"US-Passaic-NJ":5102443,"US-Philadelphia-PA":4560349,"US-Phoenix-AZ":5308655,"US-Pittsburgh-PA":5206379,"US-Portland-OR":5746545,"US-Providence-RI":5224151,"US-Richmond-VA":4781708,"US-Rochester-NY":5134086,"US-Saint Louis-MO":4407066,"US-Saint Paul-MN":5045360,"US-San Diego-CA":5391811,"US-San Francisco-CA":5391959,"US-Seattle-WA":5809844,"US-Silver Spring-MD":4369596,"US-Teaneck-NJ":5105262,"US-Washington-DC":4140963,"US-White Plains-NY":5144336,"UY-Montevideo":3441575,"UZ-Tashkent":1512569,"VC-Kingstown":3577887,"VE-Caracas":3646738,"VE-Maracaibo":3633009,"VE-Maracay":3632998,"VE-Valencia":3625549,"VG-Road Town":3577430,"VN-Hanoi":1581130,"VN-Ho Chi Minh City":1566083,Vancouver:Vancouver,"WS-Apia":4035413,"Washington DC":4140963,"White Plains":5144336,"YE-Sanaa":71137,"YT-Mamoudzou":921815,"ZA-Cape Town":3369157,"ZA-Durban":1007311,"ZA-Johannesburg":993800,"ZA-Pretoria":964137,"ZM-Lusaka":909137,"ZW-Harare":890299};
|
|
22
|
+
const Ashdod=295629;const Atlanta=4180439;const Austin=4671654;const Baghdad=98182;const Baltimore=4347778;const Berlin=2950159;const Bogota=3688689;const Boston=4930956;const Buffalo=5110629;const Chicago=4887398;const Cincinnati=4508722;const Cleveland=5150529;const Dallas=4684888;const Denver=5419384;const Detroit=4990729;const Eilat=295277;const Gibraltar=2411585;const Haifa=294801;const Hawaii=5856195;const Houston=4699066;const Jerusalem=281184;const Johannesburg=993800;const Kiev=703448;const Livingston=5100572;const London=2643743;const Melbourne=2158177;const Miami=4164138;const Montreal=6077243;const Moscow=524901;const Omaha=5074472;const Ottawa=6094817;const Paris=2988507;const Philadelphia=4560349;const Phoenix=5308655;const Pittsburgh=5206379;const Seattle=5809844;const Sydney=2147714;const Tiberias=293322;const Toronto=6167865;const Vancouver=6173331;var city2geonameid = {"AD-Andorra La Vella":3041563,"AE-Abu Dhabi":292968,"AE-Dubai":292223,"AF-Kabul":1138958,"AI-The Valley":3573374,"AL-Tirana":3183875,"AM-Yerevan":616052,"AO-Luanda":2240449,"AR-Buenos Aires":3435910,"AR-Cordoba":3860259,"AR-Rosario":3838583,"AS-Pago Pago":5881576,"AT-Vienna":2761369,"AU-Adelaide":2078025,"AU-Brisbane":2174003,"AU-Canberra":2172517,"AU-Gold Coast":2165087,"AU-Hobart":2163355,"AU-Melbourne":2158177,"AU-Perth":2063523,"AU-Sydney":2147714,"AW-Oranjestad":3577154,"AZ-Baku":587084,Ashdod:Ashdod,Atlanta:Atlanta,Austin:Austin,"BA-Sarajevo":3191281,"BB-Bridgetown":3374036,"BD-Chittagong":1205733,"BD-Dhaka":1185241,"BD-Khulna":1336135,"BE-Brussels":2800866,"BF-Ouagadougou":2357048,"BG-Sofia":727011,"BH-Manama":290340,"BI-Bujumbura":425378,"BJ-Porto-novo":2392087,"BM-Hamilton":3573197,"BN-Bandar Seri Begawan":1820906,"BO-La Paz":3911925,"BO-Santa Cruz de la Sierra":3904906,"BR-Belo Horizonte":3470127,"BR-Brasilia":3469058,"BR-Fortaleza":3399415,"BR-Rio de Janeiro":3451190,"BR-Salvador":3450554,"BR-Sao Paulo":3448439,"BS-Nassau":3571824,"BT-Thimphu":1252416,"BW-Gaborone":933773,"BY-Minsk":625144,"BZ-Belmopan":3582672,Baghdad:Baghdad,Baltimore:Baltimore,"Be'er Sheva":295530,"Beer Sheva":295530,"Bene Beraq":295514,"IL-Bene Beraq":295514,Berlin:Berlin,"Bnei Brak":295514,Bogota:Bogota,Boston:Boston,"Buenos Aires":3435910,Buffalo:Buffalo,"CA-Calgary":5913490,"CA-Edmonton":5946768,"CA-Halifax":6324729,"CA-Mississauga":6075357,"CA-Montreal":6077243,"CA-Ottawa":6094817,"CA-Quebec City":6325494,"CA-Regina":6119109,"CA-Saskatoon":6141256,"CA-St. John's-05":6324733,"CA-Toronto":6167865,"CA-Vancouver":6173331,"CA-Victoria":6174041,"CA-Winnipeg":6183235,"CD-Kinshasa":2314302,"CD-Lubumbashi":922704,"CF-Bangui":2389853,"CG-Brazzaville":2260535,"CH-Bern":2661552,"CH-Geneva":2660646,"CH-Zurich":2657896,"CI-Abidjan":2293538,"CI-Yamoussoukro":2279755,"CK-Avarua":4035715,"CL-Santiago":3871336,"CM-Douala":2232593,"CM-Yaounde":2220957,"CN-Beijing":1816670,"CN-Chengdu":1815286,"CN-Chongqing":1814906,"CN-Guangzhou":1809858,"CN-Harbin":2037013,"CN-Kaifeng":1804879,"CN-Lanzhou":1804430,"CN-Nanchong":1800146,"CN-Nanjing":1799962,"CN-Puyang":1798422,"CN-Shanghai":1796236,"CN-Shenyang":2034937,"CN-Shenzhen":1795565,"CN-Shiyan":1794903,"CN-Tai'an":1793724,"CN-Tianjin":1792947,"CN-Wuhan":1791247,"CN-Xi'an":1790630,"CN-Yueyang":1927639,"CN-Zhumadian":1783873,"CO-Barranquilla":3689147,"CO-Bogota":3688689,"CO-Bogotá":3688689,"CO-Cali":3687925,"CO-Medellin":3674962,"CR-San Jose":3621849,"CR-San José":3621849,"CR-San José":3621849,"CU-Havana":3553478,"CV-Praia":3374333,"CW-Willemstad":3513090,"CY-Nicosia":146268,"CZ-Prague":3067696,Chicago:Chicago,Cincinnati:Cincinnati,Cleveland:Cleveland,"DE-Berlin":2950159,"DE-Hamburg":2911298,"DE-Munich":2867714,"DK-Copenhagen":2618425,"DM-Roseau":3575635,"DO-Santiago de los Caballeros":3492914,"DO-Santo Domingo":3492908,"DZ-Algiers":2507480,Dallas:Dallas,Denver:Denver,Detroit:Detroit,"EC-Guayaquil":3657509,"EC-Quito":3652462,"EE-Tallinn":588409,"EG-Al Jizah":360995,"EG-Alexandria":361058,"EG-Cairo":360630,"ER-Asmara":343300,"ES-Barcelona":3128760,"ES-Madrid":3117735,"ET-Addis Ababa":344979,Eilat:Eilat,"FI-Helsinki":658225,"FJ-Suva":2198148,"FK-Stanley":3426691,"FO-Tórshavn":2611396,"FR-Marseilles":2995469,"FR-Paris":2988507,"GA-Libreville":2399697,"GB-Belfast":2655984,"GB-Birmingham":2655603,"GB-Bristol":2654675,"GB-Cardiff":2653822,"GB-Edinburgh":2650225,"GB-Glasgow":2648579,"GB-Leeds":2644688,"GB-Liverpool":2644210,"GB-London":2643743,"GB-Manchester":2643123,"GB-Sheffield":2638077,"GE-Tbilisi":611717,"GH-Accra":2306104,"GH-Kumasi":2298890,"GI-Gibraltar":2411585,"GL-Nuuk":3421319,"GM-Banjul":2413876,"GN-Camayenne":2422488,"GN-Conakry":2422465,"GQ-Malabo":2309527,"GR-Athens":264371,"GT-Guatemala City":3598132,"GW-Bissau":2374775,"GY-Georgetown":3378644,Gibraltar:Gibraltar,"HK-Hong Kong":1819729,"HN-Tegucigalpa":3600949,"HR-Zagreb":3186886,"HT-Port-au-Prince":3718426,"HU-Budapest":3054643,Haifa:Haifa,Hawaii:Hawaii,Houston:Houston,"ID-Bandung":1650357,"ID-Bekasi":1649378,"ID-Depok":1645518,"ID-Jakarta":1642911,"ID-Makassar":1622786,"ID-Medan":1214520,"ID-Palembang":1633070,"ID-Semarang":1627896,"ID-South Tangerang":8581443,"ID-Surabaya":1625822,"ID-Tangerang":1625084,"IE-Dublin":2964574,"IL-Ashdod":295629,"IL-Ashkelon":295620,"IL-Ashqelon":295620,"IL-Bat Yam":295548,"IL-Be'er Sheva":295530,"IL-Beer Sheva":295530,"IL-Beit Shemesh":295432,"IL-Bet Shemesh":295432,"IL-Bnei Brak":295514,"IL-Eilat":295277,"IL-Hadera":294946,"IL-Haifa":294801,"IL-Herzliya":294778,"IL-Herzliyya":294778,"IL-Holon":294751,"IL-Jerusalem":281184,"IL-Kfar Saba":294514,"IL-Lod":294421,"IL-Modiin":282926,"IL-Nazareth":294098,"IL-Netanya":294071,"IL-Petach Tikvah":293918,"IL-Petah Tikvah":293918,"IL-Petah Tiqwa":293918,"IL-Ra'anana":293807,"IL-Raanana":293807,"IL-Ramat Gan":293788,"IL-Ramla":293768,"IL-Rishon LeZion":293703,"IL-Rishon Leziyyon":293703,"IL-Tel Aviv":293397,"IL-Tiberias":293322,"IM-Douglas":3042237,"IN-Ahmadabad":1279233,"IN-Bangalore":1277333,"IN-Bombay":1275339,"IN-Calcutta":1275004,"IN-Chennai":1264527,"IN-Cochin":1273874,"IN-Hyderabad":1269843,"IN-Jaipur":1269515,"IN-Kanpur":1267995,"IN-New Delhi":1261481,"IN-Pune":1259229,"IN-Surat":1255364,"IQ-Baghdad":98182,"IR-Tehran":112931,"IS-Reykjavik":3413829,"IS-Reykjavík":3413829,"IT-Milano":3173435,"IT-Rome":3169070,"JM-Kingston":3489854,"JO-Amman":250441,"JP-Kobe-shi":1859171,"JP-Kyoto":1857910,"JP-Nagoya-shi":1856057,"JP-Osaka-shi":1853909,"JP-Sapporo":2128295,"JP-Tokyo":1850147,Jerusalem:Jerusalem,Johannesburg:Johannesburg,"KE-Nairobi":184745,"KG-Bishkek":1528675,"KH-Phnom Penh":1821306,"KM-Moroni":921772,"KN-Basseterre":3575551,"KP-Pyongyang":1871859,"KR-Busan":1838524,"KR-Seoul":1835848,"KW-Kuwait":285787,"KY-George Town":3580661,"KZ-Almaty":1526384,"KZ-Astana":1526273,Kiev:Kiev,"LA-Vientiane":1651944,"LB-Beirut":276781,"LC-Castries":3576812,"LI-Vaduz":3042030,"LR-Monrovia":2274895,"LS-Maseru":932505,"LT-Vilnius":593116,"LU-Luxemburg":2960316,"LV-Riga":456172,"LY-Tripoli":2210247,"La Paz":3911925,Livingston:Livingston,London:London,"Los Angeles":5368361,"MA-Casablanca":2553604,"MA-Rabat":2538475,"MD-Chisinau":618426,"ME-Podgorica":3193044,"MG-Antananarivo":1070940,"MK-Skopje":785842,"ML-Bamako":2460596,"MM-Mandalay":1311874,"MM-Rangoon":1298824,"MN-Ulaanbaatar":2028462,"MP-Saipan":7828758,"MR-Nouakchott":2377450,"MS-Plymouth":3578069,"MT-Valletta":2562305,"MU-Port Louis":934154,"MW-Lilongwe":927967,"MX-Cancun":3531673,"MX-Guadalajara":4005539,"MX-Iztapalapa":3526683,"MX-Mazatlan":3996322,"MX-Mexico City":3530597,"MX-Monterrey":3995465,"MX-Puerto Vallarta":3991328,"MX-Tijuana":3981609,"MY-Kota Bharu":1736376,"MY-Kuala Lumpur":1735161,"MZ-Maputo":1040652,Melbourne:Melbourne,"Mexico City":3530597,Miami:Miami,Montreal:Montreal,Moscow:Moscow,"NA-Windhoek":3352136,"NC-Noumea":2139521,"NC-Nouméa":2139521,"NE-Niamey":2440485,"NG-Abuja":2352778,"NG-Lagos":2332459,"NI-Managua":3617763,"NL-Amsterdam":2759794,"NO-Oslo":3143244,"NP-Kathmandu":1283240,"NU-Alofi":4036284,"NZ-Auckland":2193733,"NZ-Christchurch":2192362,"NZ-Wellington":2179537,"New York":5128581,"OM-Muscat":287286,Omaha:Omaha,Ottawa:Ottawa,"PA-Panama City":3703443,"PE-Lima":3936456,"PF-Papeete":4033936,"PG-Port Moresby":2088122,"PH-Manila":1701668,"PK-Islamabad":1176615,"PK-Karachi":1174872,"PL-Warsaw":756135,"PR-San Juan":4568127,"PT-Lisbon":2267057,"PY-Asuncion":3439389,"Panama City":3703443,Paris:Paris,"Petach Tikvah":293918,"Petah Tikvah":293918,"Petah Tikva":293918,"Petah Tiqwa":293918,"Petaẖ Tiqwa":293918,Philadelphia:Philadelphia,Phoenix:Phoenix,Pittsburgh:Pittsburgh,"QA-Doha":290030,"RO-Bucharest":683506,"RS-Belgrade":792680,"RU-Moscow":524901,"RU-Novosibirsk":1496747,"RU-Saint Petersburg":498817,"RU-Yekaterinburg":1486209,"RW-Kigali":202061,"Ra'anana":293807,"SA-Jeddah":105343,"SA-Mecca":104515,"SA-Medina":109223,"SA-Riyadh":108410,"SB-Honiara":2108502,"SC-Victoria":241131,"SD-Khartoum":379252,"SD-Omdurman":365137,"SE-Stockholm":2673730,"SG-Singapore":1880252,"SH-Jamestown":3370903,"SI-Ljubljana":3196359,"SK-Bratislava":3060972,"SL-Freetown":2408770,"SN-Dakar":2253354,"SO-Mogadishu":53654,"SR-Paramaribo":3383330,"ST-Sao Tome":2410763,"ST-São Tomé":2410763,"SV-San Salvador":3583361,"SY-Aleppo":170063,"SY-Damascus":170654,"SZ-Mbabane":934985,"Saint Louis":4407066,"Saint Petersburg":498817,"San Francisco":5391959,Seattle:Seattle,Sydney:Sydney,"TC-Cockburn Town":3576994,"TD-Ndjamena":2427123,"TG-Lome":2365267,"TG-Lomé":2365267,"TH-Bangkok":1609350,"TJ-Dushanbe":1221874,"TM-Ashgabat":162183,"TN-Tunis":2464470,"TR-Adana":325363,"TR-Ankara":323786,"TR-Bursa":750269,"TR-Istanbul":745044,"TR-Izmir":311046,"TV-Funafuti":2110394,"TW-Kaohsiung":1673820,"TW-Taipei":1668341,"TZ-Dar es Salaam":160263,"TZ-Dodoma":160196,"Tel Aviv":293397,Tiberias:Tiberias,Toronto:Toronto,"UA-Kharkiv":706483,"UA-Kiev":703448,"UG-Kampala":232422,"US-Atlanta-GA":4180439,"US-Austin-TX":4671654,"US-Baltimore-MD":4347778,"US-Boston-MA":4930956,"US-Buffalo-NY":5110629,"US-Chicago-IL":4887398,"US-Cincinnati-OH":4508722,"US-Cleveland-OH":5150529,"US-Columbus-OH":4509177,"US-Dallas-TX":4684888,"US-Denver-CO":5419384,"US-Detroit-MI":4990729,"US-Hartford-CT":4835797,"US-Honolulu-HI":5856195,"US-Houston-TX":4699066,"US-Lakewood-NJ":5100280,"US-Las Vegas-NV":5506956,"US-Livingston-NY":5100572,"US-Los Angeles-CA":5368361,"US-Memphis-TN":4641239,"US-Miami-FL":4164138,"US-Milwaukee-WI":5263045,"US-Monsey-NY":5127315,"US-New Haven-CT":4839366,"US-New York-NY":5128581,"US-Omaha-NE":5074472,"US-Orlando-FL":4167147,"US-Passaic-NJ":5102443,"US-Philadelphia-PA":4560349,"US-Phoenix-AZ":5308655,"US-Pittsburgh-PA":5206379,"US-Portland-OR":5746545,"US-Providence-RI":5224151,"US-Richmond-VA":4781708,"US-Rochester-NY":5134086,"US-Saint Louis-MO":4407066,"US-Saint Paul-MN":5045360,"US-San Diego-CA":5391811,"US-San Francisco-CA":5391959,"US-Seattle-WA":5809844,"US-Silver Spring-MD":4369596,"US-Teaneck-NJ":5105262,"US-Washington-DC":4140963,"US-White Plains-NY":5144336,"UY-Montevideo":3441575,"UZ-Tashkent":1512569,"VC-Kingstown":3577887,"VE-Caracas":3646738,"VE-Maracaibo":3633009,"VE-Maracay":3632998,"VE-Valencia":3625549,"VG-Road Town":3577430,"VN-Hanoi":1581130,"VN-Ho Chi Minh City":1566083,Vancouver:Vancouver,"WS-Apia":4035413,"Washington DC":4140963,"White Plains":5144336,"YE-Sanaa":71137,"YT-Mamoudzou":921815,"ZA-Cape Town":3369157,"ZA-Durban":1007311,"ZA-Johannesburg":993800,"ZA-Pretoria":964137,"ZM-Lusaka":909137,"ZW-Harare":890299};
|
|
23
23
|
|
|
24
24
|
const GEONAME_SQL = `SELECT
|
|
25
25
|
g.name as name,
|
|
@@ -29,6 +29,7 @@ const GEONAME_SQL = `SELECT
|
|
|
29
29
|
a.asciiname as admin1,
|
|
30
30
|
g.latitude as latitude,
|
|
31
31
|
g.longitude as longitude,
|
|
32
|
+
g.population as population,
|
|
32
33
|
g.timezone as timezone
|
|
33
34
|
FROM geoname g
|
|
34
35
|
LEFT JOIN country c on g.country = c.iso
|
|
@@ -44,31 +45,32 @@ const GEONAME_ALL_SQL = `SELECT
|
|
|
44
45
|
a.asciiname as admin1,
|
|
45
46
|
g.latitude as latitude,
|
|
46
47
|
g.longitude as longitude,
|
|
48
|
+
g.population as population,
|
|
47
49
|
g.timezone as timezone
|
|
48
50
|
FROM geoname g
|
|
49
51
|
LEFT JOIN country c on g.country = c.iso
|
|
50
52
|
LEFT JOIN admin1 a on g.country||'.'||g.admin1 = a.key
|
|
51
53
|
`;
|
|
52
|
-
const ZIPCODE_SQL = `SELECT CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving
|
|
54
|
+
const ZIPCODE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
|
|
53
55
|
FROM ZIPCodes_Primary WHERE ZipCode = ?`;
|
|
54
|
-
const ZIPCODE_ALL_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving
|
|
56
|
+
const ZIPCODE_ALL_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
|
|
55
57
|
FROM ZIPCodes_Primary`;
|
|
56
58
|
const ZIP_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
|
|
57
59
|
FROM ZIPCodes_Primary
|
|
58
60
|
WHERE ZipCode LIKE ?
|
|
59
61
|
ORDER BY Population DESC
|
|
60
62
|
LIMIT 10`;
|
|
61
|
-
const ZIP_FULLTEXT_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,
|
|
62
|
-
FROM
|
|
63
|
+
const ZIP_FULLTEXT_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,rank
|
|
64
|
+
FROM ZIPCodes_CityFullText5
|
|
63
65
|
WHERE CityMixedCase MATCH ?
|
|
64
66
|
ORDER BY Population DESC
|
|
65
67
|
LIMIT 15`;
|
|
66
|
-
const GEONAME_COMPLETE_SQL = `SELECT geonameid,
|
|
67
|
-
population
|
|
68
|
+
const GEONAME_COMPLETE_SQL = `SELECT geonameid, longname,
|
|
69
|
+
((sqrt(population)/40) + (-30 * rank)) as myrank
|
|
68
70
|
FROM geoname_fulltext
|
|
69
|
-
WHERE
|
|
71
|
+
WHERE geoname_fulltext MATCH ?
|
|
70
72
|
GROUP BY geonameid
|
|
71
|
-
ORDER BY
|
|
73
|
+
ORDER BY myrank DESC
|
|
72
74
|
LIMIT 15`;
|
|
73
75
|
const stateNames = {
|
|
74
76
|
'AK': 'Alaska',
|
|
@@ -149,7 +151,7 @@ class GeoDb {
|
|
|
149
151
|
/** @type {Map<number, Location>} */
|
|
150
152
|
|
|
151
153
|
this.geonamesCache = new Map();
|
|
152
|
-
/** @type {Map<string,
|
|
154
|
+
/** @type {Map<string, number>} */
|
|
153
155
|
|
|
154
156
|
this.legacyCities = new Map();
|
|
155
157
|
|
|
@@ -225,6 +227,7 @@ class GeoDb {
|
|
|
225
227
|
location.stateName = stateNames[location.state];
|
|
226
228
|
location.geo = 'zip';
|
|
227
229
|
location.zip = zip;
|
|
230
|
+
location.population = result.Population;
|
|
228
231
|
return location;
|
|
229
232
|
}
|
|
230
233
|
/**
|
|
@@ -262,13 +265,9 @@ class GeoDb {
|
|
|
262
265
|
const admin1 = result.admin1 || '';
|
|
263
266
|
const cityDescr = core.Location.geonameCityDescr(result.name, admin1, country);
|
|
264
267
|
const location = new core.Location(result.latitude, result.longitude, result.cc == 'IL', result.timezone, cityDescr, result.cc, geonameid);
|
|
265
|
-
|
|
266
|
-
if (result.asciiname !== result.name) {
|
|
267
|
-
location.asciiname = result.asciiname;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
268
|
location.geo = 'geoname';
|
|
271
269
|
location.geonameid = geonameid;
|
|
270
|
+
location.asciiname = result.asciiname;
|
|
272
271
|
|
|
273
272
|
if (admin1) {
|
|
274
273
|
location.admin1 = admin1;
|
|
@@ -278,6 +277,10 @@ class GeoDb {
|
|
|
278
277
|
location.jersualem = true;
|
|
279
278
|
}
|
|
280
279
|
|
|
280
|
+
if (result.population) {
|
|
281
|
+
location.population = result.population;
|
|
282
|
+
}
|
|
283
|
+
|
|
281
284
|
return location;
|
|
282
285
|
}
|
|
283
286
|
/**
|
|
@@ -306,28 +309,23 @@ class GeoDb {
|
|
|
306
309
|
/**
|
|
307
310
|
* @private
|
|
308
311
|
* @param {any[]} res
|
|
309
|
-
* @param {boolean} latlong
|
|
310
312
|
* @return {Object[]}
|
|
311
313
|
*/
|
|
312
314
|
|
|
313
315
|
|
|
314
|
-
static zipResultToObj(res
|
|
316
|
+
static zipResultToObj(res) {
|
|
315
317
|
const obj = {
|
|
316
318
|
id: String(res.ZipCode),
|
|
317
319
|
value: `${res.CityMixedCase}, ${res.State} ${res.ZipCode}`,
|
|
318
320
|
admin1: res.State,
|
|
319
321
|
asciiname: res.CityMixedCase,
|
|
320
322
|
country: 'United States',
|
|
323
|
+
latitude: res.Latitude,
|
|
324
|
+
longitude: res.Longitude,
|
|
325
|
+
timezone: core.Location.getUsaTzid(res.State, res.TimeZone, res.DayLightSaving),
|
|
321
326
|
population: res.Population,
|
|
322
327
|
geo: 'zip'
|
|
323
328
|
};
|
|
324
|
-
|
|
325
|
-
if (latlong) {
|
|
326
|
-
obj.latitude = res.Latitude;
|
|
327
|
-
obj.longitude = res.Longitude;
|
|
328
|
-
obj.timezone = core.Location.getUsaTzid(res.State, res.TimeZone, res.DayLightSaving);
|
|
329
|
-
}
|
|
330
|
-
|
|
331
329
|
return obj;
|
|
332
330
|
}
|
|
333
331
|
/**
|
|
@@ -353,25 +351,39 @@ class GeoDb {
|
|
|
353
351
|
}
|
|
354
352
|
|
|
355
353
|
const zip5 = qraw.substring(0, 5);
|
|
356
|
-
return this.zipCompStmt.all(zip5 + '%').map(
|
|
354
|
+
return this.zipCompStmt.all(zip5 + '%').map(GeoDb.zipResultToObj);
|
|
357
355
|
} else {
|
|
358
356
|
if (!this.geonamesCompStmt) {
|
|
359
357
|
this.geonamesCompStmt = this.geonamesDb.prepare(GEONAME_COMPLETE_SQL);
|
|
360
358
|
}
|
|
361
359
|
|
|
362
360
|
qraw = qraw.replace(/\"/g, '""');
|
|
363
|
-
const geoRows = this.geonamesCompStmt.all(`"${qraw}
|
|
361
|
+
const geoRows = this.geonamesCompStmt.all(`{longname} : "${qraw}" *`);
|
|
364
362
|
const geoMatches = geoRows.map(res => {
|
|
365
|
-
const
|
|
366
|
-
const
|
|
363
|
+
const loc = this.lookupGeoname(res.geonameid);
|
|
364
|
+
const country = this.countryNames.get(loc.getCountryCode()) || '';
|
|
365
|
+
const admin1 = loc.admin1 || '';
|
|
366
|
+
const rank = Math.trunc(res.myrank * 100.0) / 100.0;
|
|
367
367
|
const obj = {
|
|
368
368
|
id: res.geonameid,
|
|
369
|
-
value:
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
369
|
+
value: loc.name,
|
|
370
|
+
admin1,
|
|
371
|
+
country,
|
|
372
|
+
latitude: loc.latitude,
|
|
373
|
+
longitude: loc.longitude,
|
|
374
|
+
timezone: loc.getTzid(),
|
|
375
|
+
geo: 'geoname',
|
|
376
|
+
rank: rank
|
|
373
377
|
};
|
|
374
378
|
|
|
379
|
+
if (loc.population) {
|
|
380
|
+
obj.population = loc.population;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
if (loc.asciiname) {
|
|
384
|
+
obj.asciiname = loc.asciiname;
|
|
385
|
+
}
|
|
386
|
+
|
|
375
387
|
if (country) {
|
|
376
388
|
obj.country = country;
|
|
377
389
|
}
|
|
@@ -380,12 +392,6 @@ class GeoDb {
|
|
|
380
392
|
obj.admin1 = admin1;
|
|
381
393
|
}
|
|
382
394
|
|
|
383
|
-
if (latlong) {
|
|
384
|
-
obj.latitude = res.latitude;
|
|
385
|
-
obj.longitude = res.longitude;
|
|
386
|
-
obj.timezone = res.timezone;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
395
|
return obj;
|
|
390
396
|
});
|
|
391
397
|
|
|
@@ -393,8 +399,26 @@ class GeoDb {
|
|
|
393
399
|
this.zipFulltextCompStmt = this.zipsDb.prepare(ZIP_FULLTEXT_COMPLETE_SQL);
|
|
394
400
|
}
|
|
395
401
|
|
|
396
|
-
const zipRows = this.zipFulltextCompStmt.all(`"${qraw}
|
|
397
|
-
const zipMatches = zipRows.map(
|
|
402
|
+
const zipRows = this.zipFulltextCompStmt.all(`"${qraw}" *`);
|
|
403
|
+
const zipMatches = zipRows.map(res => {
|
|
404
|
+
const zipCode = res.ZipCode;
|
|
405
|
+
const loc = this.lookupZip(zipCode);
|
|
406
|
+
const myrank = Math.sqrt(loc.population) / 40 + -30 * res.rank;
|
|
407
|
+
const obj = {
|
|
408
|
+
id: zipCode,
|
|
409
|
+
value: loc.getName(),
|
|
410
|
+
admin1: loc.admin1,
|
|
411
|
+
asciiname: loc.getShortName(),
|
|
412
|
+
country: 'United States',
|
|
413
|
+
latitude: loc.latitude,
|
|
414
|
+
longitude: loc.longitude,
|
|
415
|
+
timezone: loc.getTzid(),
|
|
416
|
+
population: loc.population,
|
|
417
|
+
geo: 'zip',
|
|
418
|
+
rank: myrank
|
|
419
|
+
};
|
|
420
|
+
return obj;
|
|
421
|
+
});
|
|
398
422
|
const map = new Map();
|
|
399
423
|
|
|
400
424
|
for (const obj of zipMatches) {
|
|
@@ -412,8 +436,19 @@ class GeoDb {
|
|
|
412
436
|
}
|
|
413
437
|
|
|
414
438
|
const values = Array.from(map.values());
|
|
415
|
-
values.sort((a, b) => b.
|
|
416
|
-
|
|
439
|
+
values.sort((a, b) => b.rank - a.rank);
|
|
440
|
+
const topN = values.slice(0, 10);
|
|
441
|
+
|
|
442
|
+
if (!latlong) {
|
|
443
|
+
for (const val of topN) {
|
|
444
|
+
delete val.latitude;
|
|
445
|
+
delete val.longitude;
|
|
446
|
+
delete val.timezone;
|
|
447
|
+
delete val.population;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
return topN;
|
|
417
452
|
}
|
|
418
453
|
}
|
|
419
454
|
/** Reads entire ZIP database and caches in-memory */
|
|
@@ -593,45 +628,50 @@ async function buildGeonamesSqlite(opts) {
|
|
|
593
628
|
`);
|
|
594
629
|
doSql(logger, db, `update admin1 set name='',asciiname='' where key like 'PS.%';`, `update country set country = '' where iso = 'PS';`, `delete from geoname where geonameid = 7303419;`);
|
|
595
630
|
doSql(logger, db, `DROP TABLE IF EXISTS geoname_fulltext`, `CREATE VIRTUAL TABLE geoname_fulltext
|
|
596
|
-
USING
|
|
597
|
-
asciiname text, admin1 text, country text,
|
|
598
|
-
population int, latitude real, longitude real, timezone text
|
|
599
|
-
);
|
|
631
|
+
USING fts5(geonameid, longname, population);
|
|
600
632
|
`, `DROP TABLE IF EXISTS geoname_non_ascii`, `CREATE TABLE geoname_non_ascii AS
|
|
601
633
|
SELECT geonameid FROM geoname WHERE asciiname <> name`, `INSERT INTO geoname_fulltext
|
|
602
|
-
SELECT g.geonameid,
|
|
603
|
-
g.asciiname, a.asciiname, c.Country,
|
|
604
|
-
g.population
|
|
634
|
+
SELECT g.geonameid,
|
|
635
|
+
g.asciiname||', '||a.asciiname||', '||c.Country,
|
|
636
|
+
g.population
|
|
605
637
|
FROM geoname g, admin1 a, country c
|
|
606
638
|
WHERE g.country = c.ISO
|
|
639
|
+
AND g.country <> 'US'
|
|
640
|
+
AND g.country||'.'||g.admin1 = a.key
|
|
641
|
+
`, `INSERT INTO geoname_fulltext
|
|
642
|
+
SELECT g.geonameid,
|
|
643
|
+
g.asciiname||', '||a.asciiname||', USA',
|
|
644
|
+
g.population
|
|
645
|
+
FROM geoname g, admin1 a
|
|
646
|
+
WHERE g.country = 'US'
|
|
607
647
|
AND g.country||'.'||g.admin1 = a.key
|
|
608
648
|
`, `INSERT INTO geoname_fulltext
|
|
609
|
-
SELECT g.geonameid,
|
|
610
|
-
g.asciiname, '
|
|
611
|
-
g.population
|
|
649
|
+
SELECT g.geonameid,
|
|
650
|
+
g.asciiname||', '||c.Country,
|
|
651
|
+
g.population
|
|
612
652
|
FROM geoname g, country c
|
|
613
653
|
WHERE g.country = c.ISO
|
|
614
654
|
AND (g.admin1 = '' OR g.admin1 = '00')
|
|
615
655
|
`, `INSERT INTO geoname_fulltext
|
|
616
|
-
SELECT g.geonameid,
|
|
617
|
-
g.name, a.name, c.Country,
|
|
618
|
-
g.population
|
|
656
|
+
SELECT g.geonameid,
|
|
657
|
+
g.name||', '||a.name||', '||c.Country,
|
|
658
|
+
g.population
|
|
619
659
|
FROM geoname_non_ascii gna, geoname g, admin1 a, country c
|
|
620
660
|
WHERE gna.geonameid = g.geonameid
|
|
621
661
|
AND g.country = c.ISO
|
|
622
662
|
AND g.country||'.'||g.admin1 = a.key
|
|
623
663
|
`, `INSERT INTO geoname_fulltext
|
|
624
|
-
SELECT g.geonameid,
|
|
625
|
-
alt.name
|
|
626
|
-
g.population
|
|
664
|
+
SELECT g.geonameid,
|
|
665
|
+
alt.name||', ישראל',
|
|
666
|
+
g.population
|
|
627
667
|
FROM geoname g, altnames alt
|
|
628
668
|
WHERE g.country = 'IL'
|
|
629
669
|
AND alt.isolanguage = 'he'
|
|
630
670
|
AND g.geonameid = alt.geonameid
|
|
631
671
|
`, `INSERT INTO geoname_fulltext
|
|
632
|
-
SELECT g.geonameid,
|
|
633
|
-
alt.name, a1.asciiname,
|
|
634
|
-
g.population
|
|
672
|
+
SELECT g.geonameid,
|
|
673
|
+
alt.name||', '||a1.asciiname||', Israel',
|
|
674
|
+
g.population
|
|
635
675
|
FROM geoname g, admin1 a1, altnames alt
|
|
636
676
|
WHERE g.country = 'IL'
|
|
637
677
|
AND alt.isolanguage = 'en'
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/geo-sqlite v4.
|
|
1
|
+
/*! @hebcal/geo-sqlite v4.4.2 */
|
|
2
2
|
import Database from 'better-sqlite3';
|
|
3
3
|
import { Location, Locale } from '@hebcal/core';
|
|
4
4
|
import '@hebcal/cities';
|
|
@@ -7,7 +7,7 @@ import events from 'events';
|
|
|
7
7
|
import fs from 'fs';
|
|
8
8
|
import readline from 'readline';
|
|
9
9
|
|
|
10
|
-
var Ashdod=295629;var Atlanta=4180439;var Austin=4671654;var Baghdad=98182;var Baltimore=4347778;var Berlin=2950159;var Bogota=3688689;var Boston=4930956;var Buffalo=5110629;var Chicago=4887398;var Cincinnati=4508722;var Cleveland=5150529;var Dallas=4684888;var Denver=5419384;var Detroit=4990729;var Eilat=295277;var Gibraltar=2411585;var Haifa=294801;var Hawaii=5856195;var Houston=4699066;var Jerusalem=281184;var Johannesburg=993800;var Kiev=703448;var Livingston=5100572;var London=2643743;var Melbourne=2158177;var Miami=4164138;var Montreal=6077243;var Moscow=524901;var Omaha=5074472;var Ottawa=6094817;var Paris=2988507;var Philadelphia=4560349;var Phoenix=5308655;var Pittsburgh=5206379;var Seattle=5809844;var Sydney=2147714;var Tiberias=293322;var Toronto=6167865;var Vancouver=6173331;var city2geonameid = {"AD-Andorra La Vella":3041563,"AE-Abu Dhabi":292968,"AE-Dubai":292223,"AF-Kabul":1138958,"AI-The Valley":3573374,"AL-Tirana":3183875,"AM-Yerevan":616052,"AO-Luanda":2240449,"AR-Buenos Aires":3435910,"AR-Cordoba":3860259,"AR-Rosario":3838583,"AS-Pago Pago":5881576,"AT-Vienna":2761369,"AU-Adelaide":2078025,"AU-Brisbane":2174003,"AU-Canberra":2172517,"AU-Gold Coast":2165087,"AU-Hobart":2163355,"AU-Melbourne":2158177,"AU-Perth":2063523,"AU-Sydney":2147714,"AW-Oranjestad":3577154,"AZ-Baku":587084,Ashdod:Ashdod,Atlanta:Atlanta,Austin:Austin,"BA-Sarajevo":3191281,"BB-Bridgetown":3374036,"BD-Chittagong":1205733,"BD-Dhaka":1185241,"BD-Khulna":1336135,"BE-Brussels":2800866,"BF-Ouagadougou":2357048,"BG-Sofia":727011,"BH-Manama":290340,"BI-Bujumbura":425378,"BJ-Porto-novo":2392087,"BM-Hamilton":3573197,"BN-Bandar Seri Begawan":1820906,"BO-La Paz":3911925,"BO-Santa Cruz de la Sierra":3904906,"BR-Belo Horizonte":3470127,"BR-Brasilia":3469058,"BR-Fortaleza":3399415,"BR-Rio de Janeiro":3451190,"BR-Salvador":3450554,"BR-Sao Paulo":3448439,"BS-Nassau":3571824,"BT-Thimphu":1252416,"BW-Gaborone":933773,"BY-Minsk":625144,"BZ-Belmopan":3582672,Baghdad:Baghdad,Baltimore:Baltimore,"Be'er Sheva":295530,"Beer Sheva":295530,"Bene Beraq":295514,"IL-Bene Beraq":295514,Berlin:Berlin,"Bnei Brak":295514,Bogota:Bogota,Boston:Boston,"Buenos Aires":3435910,Buffalo:Buffalo,"CA-Calgary":5913490,"CA-Edmonton":5946768,"CA-Halifax":6324729,"CA-Mississauga":6075357,"CA-Montreal":6077243,"CA-Ottawa":6094817,"CA-Quebec City":6325494,"CA-Regina":6119109,"CA-Saskatoon":6141256,"CA-St. John's-05":6324733,"CA-Toronto":6167865,"CA-Vancouver":6173331,"CA-Victoria":6174041,"CA-Winnipeg":6183235,"CD-Kinshasa":2314302,"CD-Lubumbashi":922704,"CF-Bangui":2389853,"CG-Brazzaville":2260535,"CH-Bern":2661552,"CH-Geneva":2660646,"CH-Zurich":2657896,"CI-Abidjan":2293538,"CI-Yamoussoukro":2279755,"CK-Avarua":4035715,"CL-Santiago":3871336,"CM-Douala":2232593,"CM-Yaounde":2220957,"CN-Beijing":1816670,"CN-Chengdu":1815286,"CN-Chongqing":1814906,"CN-Guangzhou":1809858,"CN-Harbin":2037013,"CN-Kaifeng":1804879,"CN-Lanzhou":1804430,"CN-Nanchong":1800146,"CN-Nanjing":1799962,"CN-Puyang":1798422,"CN-Shanghai":1796236,"CN-Shenyang":2034937,"CN-Shenzhen":1795565,"CN-Shiyan":1794903,"CN-Tai'an":1793724,"CN-Tianjin":1792947,"CN-Wuhan":1791247,"CN-Xi'an":1790630,"CN-Yueyang":1927639,"CN-Zhumadian":1783873,"CO-Barranquilla":3689147,"CO-Bogota":3688689,"CO-Bogotá":3688689,"CO-Cali":3687925,"CO-Medellin":3674962,"CR-San Jose":3621849,"CR-San José":3621849,"CR-San José":3621849,"CU-Havana":3553478,"CV-Praia":3374333,"CW-Willemstad":3513090,"CY-Nicosia":146268,"CZ-Prague":3067696,Chicago:Chicago,Cincinnati:Cincinnati,Cleveland:Cleveland,"DE-Berlin":2950159,"DE-Hamburg":2911298,"DE-Munich":2867714,"DK-Copenhagen":2618425,"DM-Roseau":3575635,"DO-Santiago de los Caballeros":3492914,"DO-Santo Domingo":3492908,"DZ-Algiers":2507480,Dallas:Dallas,Denver:Denver,Detroit:Detroit,"EC-Guayaquil":3657509,"EC-Quito":3652462,"EE-Tallinn":588409,"EG-Al Jizah":360995,"EG-Alexandria":361058,"EG-Cairo":360630,"ER-Asmara":343300,"ES-Barcelona":3128760,"ES-Madrid":3117735,"ET-Addis Ababa":344979,Eilat:Eilat,"FI-Helsinki":658225,"FJ-Suva":2198148,"FK-Stanley":3426691,"FO-Tórshavn":2611396,"FR-Marseilles":2995469,"FR-Paris":2988507,"GA-Libreville":2399697,"GB-Belfast":2655984,"GB-Birmingham":2655603,"GB-Bristol":2654675,"GB-Cardiff":2653822,"GB-Edinburgh":2650225,"GB-Glasgow":2648579,"GB-Leeds":2644688,"GB-Liverpool":2644210,"GB-London":2643743,"GB-Manchester":2643123,"GB-Sheffield":2638077,"GE-Tbilisi":611717,"GH-Accra":2306104,"GH-Kumasi":2298890,"GI-Gibraltar":2411585,"GL-Nuuk":3421319,"GM-Banjul":2413876,"GN-Camayenne":2422488,"GN-Conakry":2422465,"GQ-Malabo":2309527,"GR-Athens":264371,"GT-Guatemala City":3598132,"GW-Bissau":2374775,"GY-Georgetown":3378644,Gibraltar:Gibraltar,"HK-Hong Kong":1819729,"HN-Tegucigalpa":3600949,"HR-Zagreb":3186886,"HT-Port-au-Prince":3718426,"HU-Budapest":3054643,Haifa:Haifa,Hawaii:Hawaii,Houston:Houston,"ID-Bandung":1650357,"ID-Bekasi":1649378,"ID-Depok":1645518,"ID-Jakarta":1642911,"ID-Makassar":1622786,"ID-Medan":1214520,"ID-Palembang":1633070,"ID-Semarang":1627896,"ID-South Tangerang":8581443,"ID-Surabaya":1625822,"ID-Tangerang":1625084,"IE-Dublin":2964574,"IL-Ashdod":295629,"IL-Ashkelon":295620,"IL-Ashqelon":295620,"IL-Bat Yam":295548,"IL-Be'er Sheva":295530,"IL-Beer Sheva":295530,"IL-Beit Shemesh":295432,"IL-Bet Shemesh":295432,"IL-Bnei Brak":295514,"IL-Eilat":295277,"IL-Hadera":294946,"IL-Haifa":294801,"IL-Herzliya":294778,"IL-Herzliyya":294778,"IL-Holon":294751,"IL-Jerusalem":281184,"IL-Kfar Saba":294514,"IL-Lod":294421,"IL-Modiin":282926,"IL-Nazareth":294098,"IL-Netanya":294071,"IL-Petach Tikvah":293918,"IL-Petah Tikvah":293918,"IL-Petah Tiqwa":293918,"IL-Ra'anana":293807,"IL-Raanana":293807,"IL-Ramat Gan":293788,"IL-Ramla":293768,"IL-Rishon LeZion":293703,"IL-Rishon Leziyyon":293703,"IL-Tel Aviv":293397,"IL-Tiberias":293322,"IM-Douglas":3042237,"IN-Ahmadabad":1279233,"IN-Bangalore":1277333,"IN-Bombay":1275339,"IN-Calcutta":1275004,"IN-Chennai":1264527,"IN-Cochin":1273874,"IN-Hyderabad":1269843,"IN-Jaipur":1269515,"IN-Kanpur":1267995,"IN-New Delhi":1261481,"IN-Pune":1259229,"IN-Surat":1255364,"IQ-Baghdad":98182,"IR-Tehran":112931,"IS-Reykjavik":3413829,"IS-Reykjavík":3413829,"IT-Milano":3173435,"IT-Rome":3169070,"JM-Kingston":3489854,"JO-Amman":250441,"JP-Kobe-shi":1859171,"JP-Kyoto":1857910,"JP-Nagoya-shi":1856057,"JP-Osaka-shi":1853909,"JP-Sapporo":2128295,"JP-Tokyo":1850147,Jerusalem:Jerusalem,Johannesburg:Johannesburg,"KE-Nairobi":184745,"KG-Bishkek":1528675,"KH-Phnom Penh":1821306,"KM-Moroni":921772,"KN-Basseterre":3575551,"KP-Pyongyang":1871859,"KR-Busan":1838524,"KR-Seoul":1835848,"KW-Kuwait":285787,"KY-George Town":3580661,"KZ-Almaty":1526384,"KZ-Astana":1526273,Kiev:Kiev,"LA-Vientiane":1651944,"LB-Beirut":276781,"LC-Castries":3576812,"LI-Vaduz":3042030,"LR-Monrovia":2274895,"LS-Maseru":932505,"LT-Vilnius":593116,"LU-Luxemburg":2960316,"LV-Riga":456172,"LY-Tripoli":2210247,"La Paz":3911925,Livingston:Livingston,London:London,"Los Angeles":5368361,"MA-Casablanca":2553604,"MA-Rabat":2538475,"MD-Chisinau":618426,"ME-Podgorica":3193044,"MG-Antananarivo":1070940,"MK-Skopje":785842,"ML-Bamako":2460596,"MM-Mandalay":1311874,"MM-Rangoon":1298824,"MN-Ulaanbaatar":2028462,"MP-Saipan":7828758,"MR-Nouakchott":2377450,"MS-Plymouth":3578069,"MT-Valletta":2562305,"MU-Port Louis":934154,"MW-Lilongwe":927967,"MX-Cancun":3531673,"MX-Guadalajara":4005539,"MX-Iztapalapa":3526683,"MX-Mazatlan":3996322,"MX-Mexico City":3530597,"MX-Monterrey":3995465,"MX-Puerto Vallarta":3991328,"MX-Tijuana":3981609,"MY-Kota Bharu":1736376,"MY-Kuala Lumpur":1735161,"MZ-Maputo":1040652,Melbourne:Melbourne,"Mexico City":3530597,Miami:Miami,Montreal:Montreal,Moscow:Moscow,"NA-Windhoek":3352136,"NC-Noumea":2139521,"NC-Nouméa":2139521,"NE-Niamey":2440485,"NG-Abuja":2352778,"NG-Lagos":2332459,"NI-Managua":3617763,"NL-Amsterdam":2759794,"NO-Oslo":3143244,"NP-Kathmandu":1283240,"NU-Alofi":4036284,"NZ-Auckland":2193733,"NZ-Christchurch":2192362,"NZ-Wellington":2179537,"New York":5128581,"OM-Muscat":287286,Omaha:Omaha,Ottawa:Ottawa,"PA-Panama City":3703443,"PE-Lima":3936456,"PF-Papeete":4033936,"PG-Port Moresby":2088122,"PH-Manila":1701668,"PK-Islamabad":1176615,"PK-Karachi":1174872,"PL-Warsaw":756135,"PR-San Juan":4568127,"PT-Lisbon":2267057,"PY-Asuncion":3439389,"Panama City":3703443,Paris:Paris,"Petach Tikvah":293918,"Petah Tikvah":293918,"Petah Tikva":293918,"Petah Tiqwa":293918,"Petaẖ Tiqwa":293918,Philadelphia:Philadelphia,Phoenix:Phoenix,Pittsburgh:Pittsburgh,"QA-Doha":290030,"RO-Bucharest":683506,"RS-Belgrade":792680,"RU-Moscow":524901,"RU-Novosibirsk":1496747,"RU-Saint Petersburg":498817,"RU-Yekaterinburg":1486209,"RW-Kigali":202061,"Ra'anana":293807,"SA-Jeddah":105343,"SA-Mecca":104515,"SA-Medina":109223,"SA-Riyadh":108410,"SB-Honiara":2108502,"SC-Victoria":241131,"SD-Khartoum":379252,"SD-Omdurman":365137,"SE-Stockholm":2673730,"SG-Singapore":1880252,"SH-Jamestown":3370903,"SI-Ljubljana":3196359,"SK-Bratislava":3060972,"SL-Freetown":2408770,"SN-Dakar":2253354,"SO-Mogadishu":53654,"SR-Paramaribo":3383330,"ST-Sao Tome":2410763,"ST-São Tomé":2410763,"SV-San Salvador":3583361,"SY-Aleppo":170063,"SY-Damascus":170654,"SZ-Mbabane":934985,"Saint Louis":4407066,"Saint Petersburg":498817,"San Francisco":5391959,Seattle:Seattle,Sydney:Sydney,"TC-Cockburn Town":3576994,"TD-Ndjamena":2427123,"TG-Lome":2365267,"TG-Lomé":2365267,"TH-Bangkok":1609350,"TJ-Dushanbe":1221874,"TM-Ashgabat":162183,"TN-Tunis":2464470,"TR-Adana":325363,"TR-Ankara":323786,"TR-Bursa":750269,"TR-Istanbul":745044,"TR-Izmir":311046,"TV-Funafuti":2110394,"TW-Kaohsiung":1673820,"TW-Taipei":1668341,"TZ-Dar es Salaam":160263,"TZ-Dodoma":160196,"Tel Aviv":293397,Tiberias:Tiberias,Toronto:Toronto,"UA-Kharkiv":706483,"UA-Kiev":703448,"UG-Kampala":232422,"US-Atlanta-GA":4180439,"US-Austin-TX":4671654,"US-Baltimore-MD":4347778,"US-Boston-MA":4930956,"US-Buffalo-NY":5110629,"US-Chicago-IL":4887398,"US-Cincinnati-OH":4508722,"US-Cleveland-OH":5150529,"US-Columbus-OH":4509177,"US-Dallas-TX":4684888,"US-Denver-CO":5419384,"US-Detroit-MI":4990729,"US-Hartford-CT":4835797,"US-Honolulu-HI":5856195,"US-Houston-TX":4699066,"US-Lakewood-NJ":5100280,"US-Las Vegas-NV":5506956,"US-Livingston-NY":5100572,"US-Los Angeles-CA":5368361,"US-Memphis-TN":4641239,"US-Miami-FL":4164138,"US-Milwaukee-WI":5263045,"US-Monsey-NY":5127315,"US-New Haven-CT":4839366,"US-New York-NY":5128581,"US-Omaha-NE":5074472,"US-Orlando-FL":4167147,"US-Passaic-NJ":5102443,"US-Philadelphia-PA":4560349,"US-Phoenix-AZ":5308655,"US-Pittsburgh-PA":5206379,"US-Portland-OR":5746545,"US-Providence-RI":5224151,"US-Richmond-VA":4781708,"US-Rochester-NY":5134086,"US-Saint Louis-MO":4407066,"US-Saint Paul-MN":5045360,"US-San Diego-CA":5391811,"US-San Francisco-CA":5391959,"US-Seattle-WA":5809844,"US-Silver Spring-MD":4369596,"US-Teaneck-NJ":5105262,"US-Washington-DC":4140963,"US-White Plains-NY":5144336,"UY-Montevideo":3441575,"UZ-Tashkent":1512569,"VC-Kingstown":3577887,"VE-Caracas":3646738,"VE-Maracaibo":3633009,"VE-Maracay":3632998,"VE-Valencia":3625549,"VG-Road Town":3577430,"VN-Hanoi":1581130,"VN-Ho Chi Minh City":1566083,Vancouver:Vancouver,"WS-Apia":4035413,"Washington DC":4140963,"White Plains":5144336,"YE-Sanaa":71137,"YT-Mamoudzou":921815,"ZA-Cape Town":3369157,"ZA-Durban":1007311,"ZA-Johannesburg":993800,"ZA-Pretoria":964137,"ZM-Lusaka":909137,"ZW-Harare":890299};
|
|
10
|
+
const Ashdod=295629;const Atlanta=4180439;const Austin=4671654;const Baghdad=98182;const Baltimore=4347778;const Berlin=2950159;const Bogota=3688689;const Boston=4930956;const Buffalo=5110629;const Chicago=4887398;const Cincinnati=4508722;const Cleveland=5150529;const Dallas=4684888;const Denver=5419384;const Detroit=4990729;const Eilat=295277;const Gibraltar=2411585;const Haifa=294801;const Hawaii=5856195;const Houston=4699066;const Jerusalem=281184;const Johannesburg=993800;const Kiev=703448;const Livingston=5100572;const London=2643743;const Melbourne=2158177;const Miami=4164138;const Montreal=6077243;const Moscow=524901;const Omaha=5074472;const Ottawa=6094817;const Paris=2988507;const Philadelphia=4560349;const Phoenix=5308655;const Pittsburgh=5206379;const Seattle=5809844;const Sydney=2147714;const Tiberias=293322;const Toronto=6167865;const Vancouver=6173331;var city2geonameid = {"AD-Andorra La Vella":3041563,"AE-Abu Dhabi":292968,"AE-Dubai":292223,"AF-Kabul":1138958,"AI-The Valley":3573374,"AL-Tirana":3183875,"AM-Yerevan":616052,"AO-Luanda":2240449,"AR-Buenos Aires":3435910,"AR-Cordoba":3860259,"AR-Rosario":3838583,"AS-Pago Pago":5881576,"AT-Vienna":2761369,"AU-Adelaide":2078025,"AU-Brisbane":2174003,"AU-Canberra":2172517,"AU-Gold Coast":2165087,"AU-Hobart":2163355,"AU-Melbourne":2158177,"AU-Perth":2063523,"AU-Sydney":2147714,"AW-Oranjestad":3577154,"AZ-Baku":587084,Ashdod:Ashdod,Atlanta:Atlanta,Austin:Austin,"BA-Sarajevo":3191281,"BB-Bridgetown":3374036,"BD-Chittagong":1205733,"BD-Dhaka":1185241,"BD-Khulna":1336135,"BE-Brussels":2800866,"BF-Ouagadougou":2357048,"BG-Sofia":727011,"BH-Manama":290340,"BI-Bujumbura":425378,"BJ-Porto-novo":2392087,"BM-Hamilton":3573197,"BN-Bandar Seri Begawan":1820906,"BO-La Paz":3911925,"BO-Santa Cruz de la Sierra":3904906,"BR-Belo Horizonte":3470127,"BR-Brasilia":3469058,"BR-Fortaleza":3399415,"BR-Rio de Janeiro":3451190,"BR-Salvador":3450554,"BR-Sao Paulo":3448439,"BS-Nassau":3571824,"BT-Thimphu":1252416,"BW-Gaborone":933773,"BY-Minsk":625144,"BZ-Belmopan":3582672,Baghdad:Baghdad,Baltimore:Baltimore,"Be'er Sheva":295530,"Beer Sheva":295530,"Bene Beraq":295514,"IL-Bene Beraq":295514,Berlin:Berlin,"Bnei Brak":295514,Bogota:Bogota,Boston:Boston,"Buenos Aires":3435910,Buffalo:Buffalo,"CA-Calgary":5913490,"CA-Edmonton":5946768,"CA-Halifax":6324729,"CA-Mississauga":6075357,"CA-Montreal":6077243,"CA-Ottawa":6094817,"CA-Quebec City":6325494,"CA-Regina":6119109,"CA-Saskatoon":6141256,"CA-St. John's-05":6324733,"CA-Toronto":6167865,"CA-Vancouver":6173331,"CA-Victoria":6174041,"CA-Winnipeg":6183235,"CD-Kinshasa":2314302,"CD-Lubumbashi":922704,"CF-Bangui":2389853,"CG-Brazzaville":2260535,"CH-Bern":2661552,"CH-Geneva":2660646,"CH-Zurich":2657896,"CI-Abidjan":2293538,"CI-Yamoussoukro":2279755,"CK-Avarua":4035715,"CL-Santiago":3871336,"CM-Douala":2232593,"CM-Yaounde":2220957,"CN-Beijing":1816670,"CN-Chengdu":1815286,"CN-Chongqing":1814906,"CN-Guangzhou":1809858,"CN-Harbin":2037013,"CN-Kaifeng":1804879,"CN-Lanzhou":1804430,"CN-Nanchong":1800146,"CN-Nanjing":1799962,"CN-Puyang":1798422,"CN-Shanghai":1796236,"CN-Shenyang":2034937,"CN-Shenzhen":1795565,"CN-Shiyan":1794903,"CN-Tai'an":1793724,"CN-Tianjin":1792947,"CN-Wuhan":1791247,"CN-Xi'an":1790630,"CN-Yueyang":1927639,"CN-Zhumadian":1783873,"CO-Barranquilla":3689147,"CO-Bogota":3688689,"CO-Bogotá":3688689,"CO-Cali":3687925,"CO-Medellin":3674962,"CR-San Jose":3621849,"CR-San José":3621849,"CR-San José":3621849,"CU-Havana":3553478,"CV-Praia":3374333,"CW-Willemstad":3513090,"CY-Nicosia":146268,"CZ-Prague":3067696,Chicago:Chicago,Cincinnati:Cincinnati,Cleveland:Cleveland,"DE-Berlin":2950159,"DE-Hamburg":2911298,"DE-Munich":2867714,"DK-Copenhagen":2618425,"DM-Roseau":3575635,"DO-Santiago de los Caballeros":3492914,"DO-Santo Domingo":3492908,"DZ-Algiers":2507480,Dallas:Dallas,Denver:Denver,Detroit:Detroit,"EC-Guayaquil":3657509,"EC-Quito":3652462,"EE-Tallinn":588409,"EG-Al Jizah":360995,"EG-Alexandria":361058,"EG-Cairo":360630,"ER-Asmara":343300,"ES-Barcelona":3128760,"ES-Madrid":3117735,"ET-Addis Ababa":344979,Eilat:Eilat,"FI-Helsinki":658225,"FJ-Suva":2198148,"FK-Stanley":3426691,"FO-Tórshavn":2611396,"FR-Marseilles":2995469,"FR-Paris":2988507,"GA-Libreville":2399697,"GB-Belfast":2655984,"GB-Birmingham":2655603,"GB-Bristol":2654675,"GB-Cardiff":2653822,"GB-Edinburgh":2650225,"GB-Glasgow":2648579,"GB-Leeds":2644688,"GB-Liverpool":2644210,"GB-London":2643743,"GB-Manchester":2643123,"GB-Sheffield":2638077,"GE-Tbilisi":611717,"GH-Accra":2306104,"GH-Kumasi":2298890,"GI-Gibraltar":2411585,"GL-Nuuk":3421319,"GM-Banjul":2413876,"GN-Camayenne":2422488,"GN-Conakry":2422465,"GQ-Malabo":2309527,"GR-Athens":264371,"GT-Guatemala City":3598132,"GW-Bissau":2374775,"GY-Georgetown":3378644,Gibraltar:Gibraltar,"HK-Hong Kong":1819729,"HN-Tegucigalpa":3600949,"HR-Zagreb":3186886,"HT-Port-au-Prince":3718426,"HU-Budapest":3054643,Haifa:Haifa,Hawaii:Hawaii,Houston:Houston,"ID-Bandung":1650357,"ID-Bekasi":1649378,"ID-Depok":1645518,"ID-Jakarta":1642911,"ID-Makassar":1622786,"ID-Medan":1214520,"ID-Palembang":1633070,"ID-Semarang":1627896,"ID-South Tangerang":8581443,"ID-Surabaya":1625822,"ID-Tangerang":1625084,"IE-Dublin":2964574,"IL-Ashdod":295629,"IL-Ashkelon":295620,"IL-Ashqelon":295620,"IL-Bat Yam":295548,"IL-Be'er Sheva":295530,"IL-Beer Sheva":295530,"IL-Beit Shemesh":295432,"IL-Bet Shemesh":295432,"IL-Bnei Brak":295514,"IL-Eilat":295277,"IL-Hadera":294946,"IL-Haifa":294801,"IL-Herzliya":294778,"IL-Herzliyya":294778,"IL-Holon":294751,"IL-Jerusalem":281184,"IL-Kfar Saba":294514,"IL-Lod":294421,"IL-Modiin":282926,"IL-Nazareth":294098,"IL-Netanya":294071,"IL-Petach Tikvah":293918,"IL-Petah Tikvah":293918,"IL-Petah Tiqwa":293918,"IL-Ra'anana":293807,"IL-Raanana":293807,"IL-Ramat Gan":293788,"IL-Ramla":293768,"IL-Rishon LeZion":293703,"IL-Rishon Leziyyon":293703,"IL-Tel Aviv":293397,"IL-Tiberias":293322,"IM-Douglas":3042237,"IN-Ahmadabad":1279233,"IN-Bangalore":1277333,"IN-Bombay":1275339,"IN-Calcutta":1275004,"IN-Chennai":1264527,"IN-Cochin":1273874,"IN-Hyderabad":1269843,"IN-Jaipur":1269515,"IN-Kanpur":1267995,"IN-New Delhi":1261481,"IN-Pune":1259229,"IN-Surat":1255364,"IQ-Baghdad":98182,"IR-Tehran":112931,"IS-Reykjavik":3413829,"IS-Reykjavík":3413829,"IT-Milano":3173435,"IT-Rome":3169070,"JM-Kingston":3489854,"JO-Amman":250441,"JP-Kobe-shi":1859171,"JP-Kyoto":1857910,"JP-Nagoya-shi":1856057,"JP-Osaka-shi":1853909,"JP-Sapporo":2128295,"JP-Tokyo":1850147,Jerusalem:Jerusalem,Johannesburg:Johannesburg,"KE-Nairobi":184745,"KG-Bishkek":1528675,"KH-Phnom Penh":1821306,"KM-Moroni":921772,"KN-Basseterre":3575551,"KP-Pyongyang":1871859,"KR-Busan":1838524,"KR-Seoul":1835848,"KW-Kuwait":285787,"KY-George Town":3580661,"KZ-Almaty":1526384,"KZ-Astana":1526273,Kiev:Kiev,"LA-Vientiane":1651944,"LB-Beirut":276781,"LC-Castries":3576812,"LI-Vaduz":3042030,"LR-Monrovia":2274895,"LS-Maseru":932505,"LT-Vilnius":593116,"LU-Luxemburg":2960316,"LV-Riga":456172,"LY-Tripoli":2210247,"La Paz":3911925,Livingston:Livingston,London:London,"Los Angeles":5368361,"MA-Casablanca":2553604,"MA-Rabat":2538475,"MD-Chisinau":618426,"ME-Podgorica":3193044,"MG-Antananarivo":1070940,"MK-Skopje":785842,"ML-Bamako":2460596,"MM-Mandalay":1311874,"MM-Rangoon":1298824,"MN-Ulaanbaatar":2028462,"MP-Saipan":7828758,"MR-Nouakchott":2377450,"MS-Plymouth":3578069,"MT-Valletta":2562305,"MU-Port Louis":934154,"MW-Lilongwe":927967,"MX-Cancun":3531673,"MX-Guadalajara":4005539,"MX-Iztapalapa":3526683,"MX-Mazatlan":3996322,"MX-Mexico City":3530597,"MX-Monterrey":3995465,"MX-Puerto Vallarta":3991328,"MX-Tijuana":3981609,"MY-Kota Bharu":1736376,"MY-Kuala Lumpur":1735161,"MZ-Maputo":1040652,Melbourne:Melbourne,"Mexico City":3530597,Miami:Miami,Montreal:Montreal,Moscow:Moscow,"NA-Windhoek":3352136,"NC-Noumea":2139521,"NC-Nouméa":2139521,"NE-Niamey":2440485,"NG-Abuja":2352778,"NG-Lagos":2332459,"NI-Managua":3617763,"NL-Amsterdam":2759794,"NO-Oslo":3143244,"NP-Kathmandu":1283240,"NU-Alofi":4036284,"NZ-Auckland":2193733,"NZ-Christchurch":2192362,"NZ-Wellington":2179537,"New York":5128581,"OM-Muscat":287286,Omaha:Omaha,Ottawa:Ottawa,"PA-Panama City":3703443,"PE-Lima":3936456,"PF-Papeete":4033936,"PG-Port Moresby":2088122,"PH-Manila":1701668,"PK-Islamabad":1176615,"PK-Karachi":1174872,"PL-Warsaw":756135,"PR-San Juan":4568127,"PT-Lisbon":2267057,"PY-Asuncion":3439389,"Panama City":3703443,Paris:Paris,"Petach Tikvah":293918,"Petah Tikvah":293918,"Petah Tikva":293918,"Petah Tiqwa":293918,"Petaẖ Tiqwa":293918,Philadelphia:Philadelphia,Phoenix:Phoenix,Pittsburgh:Pittsburgh,"QA-Doha":290030,"RO-Bucharest":683506,"RS-Belgrade":792680,"RU-Moscow":524901,"RU-Novosibirsk":1496747,"RU-Saint Petersburg":498817,"RU-Yekaterinburg":1486209,"RW-Kigali":202061,"Ra'anana":293807,"SA-Jeddah":105343,"SA-Mecca":104515,"SA-Medina":109223,"SA-Riyadh":108410,"SB-Honiara":2108502,"SC-Victoria":241131,"SD-Khartoum":379252,"SD-Omdurman":365137,"SE-Stockholm":2673730,"SG-Singapore":1880252,"SH-Jamestown":3370903,"SI-Ljubljana":3196359,"SK-Bratislava":3060972,"SL-Freetown":2408770,"SN-Dakar":2253354,"SO-Mogadishu":53654,"SR-Paramaribo":3383330,"ST-Sao Tome":2410763,"ST-São Tomé":2410763,"SV-San Salvador":3583361,"SY-Aleppo":170063,"SY-Damascus":170654,"SZ-Mbabane":934985,"Saint Louis":4407066,"Saint Petersburg":498817,"San Francisco":5391959,Seattle:Seattle,Sydney:Sydney,"TC-Cockburn Town":3576994,"TD-Ndjamena":2427123,"TG-Lome":2365267,"TG-Lomé":2365267,"TH-Bangkok":1609350,"TJ-Dushanbe":1221874,"TM-Ashgabat":162183,"TN-Tunis":2464470,"TR-Adana":325363,"TR-Ankara":323786,"TR-Bursa":750269,"TR-Istanbul":745044,"TR-Izmir":311046,"TV-Funafuti":2110394,"TW-Kaohsiung":1673820,"TW-Taipei":1668341,"TZ-Dar es Salaam":160263,"TZ-Dodoma":160196,"Tel Aviv":293397,Tiberias:Tiberias,Toronto:Toronto,"UA-Kharkiv":706483,"UA-Kiev":703448,"UG-Kampala":232422,"US-Atlanta-GA":4180439,"US-Austin-TX":4671654,"US-Baltimore-MD":4347778,"US-Boston-MA":4930956,"US-Buffalo-NY":5110629,"US-Chicago-IL":4887398,"US-Cincinnati-OH":4508722,"US-Cleveland-OH":5150529,"US-Columbus-OH":4509177,"US-Dallas-TX":4684888,"US-Denver-CO":5419384,"US-Detroit-MI":4990729,"US-Hartford-CT":4835797,"US-Honolulu-HI":5856195,"US-Houston-TX":4699066,"US-Lakewood-NJ":5100280,"US-Las Vegas-NV":5506956,"US-Livingston-NY":5100572,"US-Los Angeles-CA":5368361,"US-Memphis-TN":4641239,"US-Miami-FL":4164138,"US-Milwaukee-WI":5263045,"US-Monsey-NY":5127315,"US-New Haven-CT":4839366,"US-New York-NY":5128581,"US-Omaha-NE":5074472,"US-Orlando-FL":4167147,"US-Passaic-NJ":5102443,"US-Philadelphia-PA":4560349,"US-Phoenix-AZ":5308655,"US-Pittsburgh-PA":5206379,"US-Portland-OR":5746545,"US-Providence-RI":5224151,"US-Richmond-VA":4781708,"US-Rochester-NY":5134086,"US-Saint Louis-MO":4407066,"US-Saint Paul-MN":5045360,"US-San Diego-CA":5391811,"US-San Francisco-CA":5391959,"US-Seattle-WA":5809844,"US-Silver Spring-MD":4369596,"US-Teaneck-NJ":5105262,"US-Washington-DC":4140963,"US-White Plains-NY":5144336,"UY-Montevideo":3441575,"UZ-Tashkent":1512569,"VC-Kingstown":3577887,"VE-Caracas":3646738,"VE-Maracaibo":3633009,"VE-Maracay":3632998,"VE-Valencia":3625549,"VG-Road Town":3577430,"VN-Hanoi":1581130,"VN-Ho Chi Minh City":1566083,Vancouver:Vancouver,"WS-Apia":4035413,"Washington DC":4140963,"White Plains":5144336,"YE-Sanaa":71137,"YT-Mamoudzou":921815,"ZA-Cape Town":3369157,"ZA-Durban":1007311,"ZA-Johannesburg":993800,"ZA-Pretoria":964137,"ZM-Lusaka":909137,"ZW-Harare":890299};
|
|
11
11
|
|
|
12
12
|
const GEONAME_SQL = `SELECT
|
|
13
13
|
g.name as name,
|
|
@@ -17,6 +17,7 @@ const GEONAME_SQL = `SELECT
|
|
|
17
17
|
a.asciiname as admin1,
|
|
18
18
|
g.latitude as latitude,
|
|
19
19
|
g.longitude as longitude,
|
|
20
|
+
g.population as population,
|
|
20
21
|
g.timezone as timezone
|
|
21
22
|
FROM geoname g
|
|
22
23
|
LEFT JOIN country c on g.country = c.iso
|
|
@@ -32,31 +33,32 @@ const GEONAME_ALL_SQL = `SELECT
|
|
|
32
33
|
a.asciiname as admin1,
|
|
33
34
|
g.latitude as latitude,
|
|
34
35
|
g.longitude as longitude,
|
|
36
|
+
g.population as population,
|
|
35
37
|
g.timezone as timezone
|
|
36
38
|
FROM geoname g
|
|
37
39
|
LEFT JOIN country c on g.country = c.iso
|
|
38
40
|
LEFT JOIN admin1 a on g.country||'.'||g.admin1 = a.key
|
|
39
41
|
`;
|
|
40
|
-
const ZIPCODE_SQL = `SELECT CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving
|
|
42
|
+
const ZIPCODE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
|
|
41
43
|
FROM ZIPCodes_Primary WHERE ZipCode = ?`;
|
|
42
|
-
const ZIPCODE_ALL_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving
|
|
44
|
+
const ZIPCODE_ALL_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
|
|
43
45
|
FROM ZIPCodes_Primary`;
|
|
44
46
|
const ZIP_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population
|
|
45
47
|
FROM ZIPCodes_Primary
|
|
46
48
|
WHERE ZipCode LIKE ?
|
|
47
49
|
ORDER BY Population DESC
|
|
48
50
|
LIMIT 10`;
|
|
49
|
-
const ZIP_FULLTEXT_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,
|
|
50
|
-
FROM
|
|
51
|
+
const ZIP_FULLTEXT_COMPLETE_SQL = `SELECT ZipCode,CityMixedCase,rank
|
|
52
|
+
FROM ZIPCodes_CityFullText5
|
|
51
53
|
WHERE CityMixedCase MATCH ?
|
|
52
54
|
ORDER BY Population DESC
|
|
53
55
|
LIMIT 15`;
|
|
54
|
-
const GEONAME_COMPLETE_SQL = `SELECT geonameid,
|
|
55
|
-
population
|
|
56
|
+
const GEONAME_COMPLETE_SQL = `SELECT geonameid, longname,
|
|
57
|
+
((sqrt(population)/40) + (-30 * rank)) as myrank
|
|
56
58
|
FROM geoname_fulltext
|
|
57
|
-
WHERE
|
|
59
|
+
WHERE geoname_fulltext MATCH ?
|
|
58
60
|
GROUP BY geonameid
|
|
59
|
-
ORDER BY
|
|
61
|
+
ORDER BY myrank DESC
|
|
60
62
|
LIMIT 15`;
|
|
61
63
|
const stateNames = {
|
|
62
64
|
'AK': 'Alaska',
|
|
@@ -137,7 +139,7 @@ class GeoDb {
|
|
|
137
139
|
/** @type {Map<number, Location>} */
|
|
138
140
|
|
|
139
141
|
this.geonamesCache = new Map();
|
|
140
|
-
/** @type {Map<string,
|
|
142
|
+
/** @type {Map<string, number>} */
|
|
141
143
|
|
|
142
144
|
this.legacyCities = new Map();
|
|
143
145
|
|
|
@@ -213,6 +215,7 @@ class GeoDb {
|
|
|
213
215
|
location.stateName = stateNames[location.state];
|
|
214
216
|
location.geo = 'zip';
|
|
215
217
|
location.zip = zip;
|
|
218
|
+
location.population = result.Population;
|
|
216
219
|
return location;
|
|
217
220
|
}
|
|
218
221
|
/**
|
|
@@ -250,13 +253,9 @@ class GeoDb {
|
|
|
250
253
|
const admin1 = result.admin1 || '';
|
|
251
254
|
const cityDescr = Location.geonameCityDescr(result.name, admin1, country);
|
|
252
255
|
const location = new Location(result.latitude, result.longitude, result.cc == 'IL', result.timezone, cityDescr, result.cc, geonameid);
|
|
253
|
-
|
|
254
|
-
if (result.asciiname !== result.name) {
|
|
255
|
-
location.asciiname = result.asciiname;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
256
|
location.geo = 'geoname';
|
|
259
257
|
location.geonameid = geonameid;
|
|
258
|
+
location.asciiname = result.asciiname;
|
|
260
259
|
|
|
261
260
|
if (admin1) {
|
|
262
261
|
location.admin1 = admin1;
|
|
@@ -266,6 +265,10 @@ class GeoDb {
|
|
|
266
265
|
location.jersualem = true;
|
|
267
266
|
}
|
|
268
267
|
|
|
268
|
+
if (result.population) {
|
|
269
|
+
location.population = result.population;
|
|
270
|
+
}
|
|
271
|
+
|
|
269
272
|
return location;
|
|
270
273
|
}
|
|
271
274
|
/**
|
|
@@ -294,28 +297,23 @@ class GeoDb {
|
|
|
294
297
|
/**
|
|
295
298
|
* @private
|
|
296
299
|
* @param {any[]} res
|
|
297
|
-
* @param {boolean} latlong
|
|
298
300
|
* @return {Object[]}
|
|
299
301
|
*/
|
|
300
302
|
|
|
301
303
|
|
|
302
|
-
static zipResultToObj(res
|
|
304
|
+
static zipResultToObj(res) {
|
|
303
305
|
const obj = {
|
|
304
306
|
id: String(res.ZipCode),
|
|
305
307
|
value: `${res.CityMixedCase}, ${res.State} ${res.ZipCode}`,
|
|
306
308
|
admin1: res.State,
|
|
307
309
|
asciiname: res.CityMixedCase,
|
|
308
310
|
country: 'United States',
|
|
311
|
+
latitude: res.Latitude,
|
|
312
|
+
longitude: res.Longitude,
|
|
313
|
+
timezone: Location.getUsaTzid(res.State, res.TimeZone, res.DayLightSaving),
|
|
309
314
|
population: res.Population,
|
|
310
315
|
geo: 'zip'
|
|
311
316
|
};
|
|
312
|
-
|
|
313
|
-
if (latlong) {
|
|
314
|
-
obj.latitude = res.Latitude;
|
|
315
|
-
obj.longitude = res.Longitude;
|
|
316
|
-
obj.timezone = Location.getUsaTzid(res.State, res.TimeZone, res.DayLightSaving);
|
|
317
|
-
}
|
|
318
|
-
|
|
319
317
|
return obj;
|
|
320
318
|
}
|
|
321
319
|
/**
|
|
@@ -341,25 +339,39 @@ class GeoDb {
|
|
|
341
339
|
}
|
|
342
340
|
|
|
343
341
|
const zip5 = qraw.substring(0, 5);
|
|
344
|
-
return this.zipCompStmt.all(zip5 + '%').map(
|
|
342
|
+
return this.zipCompStmt.all(zip5 + '%').map(GeoDb.zipResultToObj);
|
|
345
343
|
} else {
|
|
346
344
|
if (!this.geonamesCompStmt) {
|
|
347
345
|
this.geonamesCompStmt = this.geonamesDb.prepare(GEONAME_COMPLETE_SQL);
|
|
348
346
|
}
|
|
349
347
|
|
|
350
348
|
qraw = qraw.replace(/\"/g, '""');
|
|
351
|
-
const geoRows = this.geonamesCompStmt.all(`"${qraw}
|
|
349
|
+
const geoRows = this.geonamesCompStmt.all(`{longname} : "${qraw}" *`);
|
|
352
350
|
const geoMatches = geoRows.map(res => {
|
|
353
|
-
const
|
|
354
|
-
const
|
|
351
|
+
const loc = this.lookupGeoname(res.geonameid);
|
|
352
|
+
const country = this.countryNames.get(loc.getCountryCode()) || '';
|
|
353
|
+
const admin1 = loc.admin1 || '';
|
|
354
|
+
const rank = Math.trunc(res.myrank * 100.0) / 100.0;
|
|
355
355
|
const obj = {
|
|
356
356
|
id: res.geonameid,
|
|
357
|
-
value:
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
357
|
+
value: loc.name,
|
|
358
|
+
admin1,
|
|
359
|
+
country,
|
|
360
|
+
latitude: loc.latitude,
|
|
361
|
+
longitude: loc.longitude,
|
|
362
|
+
timezone: loc.getTzid(),
|
|
363
|
+
geo: 'geoname',
|
|
364
|
+
rank: rank
|
|
361
365
|
};
|
|
362
366
|
|
|
367
|
+
if (loc.population) {
|
|
368
|
+
obj.population = loc.population;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
if (loc.asciiname) {
|
|
372
|
+
obj.asciiname = loc.asciiname;
|
|
373
|
+
}
|
|
374
|
+
|
|
363
375
|
if (country) {
|
|
364
376
|
obj.country = country;
|
|
365
377
|
}
|
|
@@ -368,12 +380,6 @@ class GeoDb {
|
|
|
368
380
|
obj.admin1 = admin1;
|
|
369
381
|
}
|
|
370
382
|
|
|
371
|
-
if (latlong) {
|
|
372
|
-
obj.latitude = res.latitude;
|
|
373
|
-
obj.longitude = res.longitude;
|
|
374
|
-
obj.timezone = res.timezone;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
383
|
return obj;
|
|
378
384
|
});
|
|
379
385
|
|
|
@@ -381,8 +387,26 @@ class GeoDb {
|
|
|
381
387
|
this.zipFulltextCompStmt = this.zipsDb.prepare(ZIP_FULLTEXT_COMPLETE_SQL);
|
|
382
388
|
}
|
|
383
389
|
|
|
384
|
-
const zipRows = this.zipFulltextCompStmt.all(`"${qraw}
|
|
385
|
-
const zipMatches = zipRows.map(
|
|
390
|
+
const zipRows = this.zipFulltextCompStmt.all(`"${qraw}" *`);
|
|
391
|
+
const zipMatches = zipRows.map(res => {
|
|
392
|
+
const zipCode = res.ZipCode;
|
|
393
|
+
const loc = this.lookupZip(zipCode);
|
|
394
|
+
const myrank = Math.sqrt(loc.population) / 40 + -30 * res.rank;
|
|
395
|
+
const obj = {
|
|
396
|
+
id: zipCode,
|
|
397
|
+
value: loc.getName(),
|
|
398
|
+
admin1: loc.admin1,
|
|
399
|
+
asciiname: loc.getShortName(),
|
|
400
|
+
country: 'United States',
|
|
401
|
+
latitude: loc.latitude,
|
|
402
|
+
longitude: loc.longitude,
|
|
403
|
+
timezone: loc.getTzid(),
|
|
404
|
+
population: loc.population,
|
|
405
|
+
geo: 'zip',
|
|
406
|
+
rank: myrank
|
|
407
|
+
};
|
|
408
|
+
return obj;
|
|
409
|
+
});
|
|
386
410
|
const map = new Map();
|
|
387
411
|
|
|
388
412
|
for (const obj of zipMatches) {
|
|
@@ -400,8 +424,19 @@ class GeoDb {
|
|
|
400
424
|
}
|
|
401
425
|
|
|
402
426
|
const values = Array.from(map.values());
|
|
403
|
-
values.sort((a, b) => b.
|
|
404
|
-
|
|
427
|
+
values.sort((a, b) => b.rank - a.rank);
|
|
428
|
+
const topN = values.slice(0, 10);
|
|
429
|
+
|
|
430
|
+
if (!latlong) {
|
|
431
|
+
for (const val of topN) {
|
|
432
|
+
delete val.latitude;
|
|
433
|
+
delete val.longitude;
|
|
434
|
+
delete val.timezone;
|
|
435
|
+
delete val.population;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
return topN;
|
|
405
440
|
}
|
|
406
441
|
}
|
|
407
442
|
/** Reads entire ZIP database and caches in-memory */
|
|
@@ -581,45 +616,50 @@ async function buildGeonamesSqlite(opts) {
|
|
|
581
616
|
`);
|
|
582
617
|
doSql(logger, db, `update admin1 set name='',asciiname='' where key like 'PS.%';`, `update country set country = '' where iso = 'PS';`, `delete from geoname where geonameid = 7303419;`);
|
|
583
618
|
doSql(logger, db, `DROP TABLE IF EXISTS geoname_fulltext`, `CREATE VIRTUAL TABLE geoname_fulltext
|
|
584
|
-
USING
|
|
585
|
-
asciiname text, admin1 text, country text,
|
|
586
|
-
population int, latitude real, longitude real, timezone text
|
|
587
|
-
);
|
|
619
|
+
USING fts5(geonameid, longname, population);
|
|
588
620
|
`, `DROP TABLE IF EXISTS geoname_non_ascii`, `CREATE TABLE geoname_non_ascii AS
|
|
589
621
|
SELECT geonameid FROM geoname WHERE asciiname <> name`, `INSERT INTO geoname_fulltext
|
|
590
|
-
SELECT g.geonameid,
|
|
591
|
-
g.asciiname, a.asciiname, c.Country,
|
|
592
|
-
g.population
|
|
622
|
+
SELECT g.geonameid,
|
|
623
|
+
g.asciiname||', '||a.asciiname||', '||c.Country,
|
|
624
|
+
g.population
|
|
593
625
|
FROM geoname g, admin1 a, country c
|
|
594
626
|
WHERE g.country = c.ISO
|
|
627
|
+
AND g.country <> 'US'
|
|
628
|
+
AND g.country||'.'||g.admin1 = a.key
|
|
629
|
+
`, `INSERT INTO geoname_fulltext
|
|
630
|
+
SELECT g.geonameid,
|
|
631
|
+
g.asciiname||', '||a.asciiname||', USA',
|
|
632
|
+
g.population
|
|
633
|
+
FROM geoname g, admin1 a
|
|
634
|
+
WHERE g.country = 'US'
|
|
595
635
|
AND g.country||'.'||g.admin1 = a.key
|
|
596
636
|
`, `INSERT INTO geoname_fulltext
|
|
597
|
-
SELECT g.geonameid,
|
|
598
|
-
g.asciiname, '
|
|
599
|
-
g.population
|
|
637
|
+
SELECT g.geonameid,
|
|
638
|
+
g.asciiname||', '||c.Country,
|
|
639
|
+
g.population
|
|
600
640
|
FROM geoname g, country c
|
|
601
641
|
WHERE g.country = c.ISO
|
|
602
642
|
AND (g.admin1 = '' OR g.admin1 = '00')
|
|
603
643
|
`, `INSERT INTO geoname_fulltext
|
|
604
|
-
SELECT g.geonameid,
|
|
605
|
-
g.name, a.name, c.Country,
|
|
606
|
-
g.population
|
|
644
|
+
SELECT g.geonameid,
|
|
645
|
+
g.name||', '||a.name||', '||c.Country,
|
|
646
|
+
g.population
|
|
607
647
|
FROM geoname_non_ascii gna, geoname g, admin1 a, country c
|
|
608
648
|
WHERE gna.geonameid = g.geonameid
|
|
609
649
|
AND g.country = c.ISO
|
|
610
650
|
AND g.country||'.'||g.admin1 = a.key
|
|
611
651
|
`, `INSERT INTO geoname_fulltext
|
|
612
|
-
SELECT g.geonameid,
|
|
613
|
-
alt.name
|
|
614
|
-
g.population
|
|
652
|
+
SELECT g.geonameid,
|
|
653
|
+
alt.name||', ישראל',
|
|
654
|
+
g.population
|
|
615
655
|
FROM geoname g, altnames alt
|
|
616
656
|
WHERE g.country = 'IL'
|
|
617
657
|
AND alt.isolanguage = 'he'
|
|
618
658
|
AND g.geonameid = alt.geonameid
|
|
619
659
|
`, `INSERT INTO geoname_fulltext
|
|
620
|
-
SELECT g.geonameid,
|
|
621
|
-
alt.name, a1.asciiname,
|
|
622
|
-
g.population
|
|
660
|
+
SELECT g.geonameid,
|
|
661
|
+
alt.name||', '||a1.asciiname||', Israel',
|
|
662
|
+
g.population
|
|
623
663
|
FROM geoname g, admin1 a1, altnames alt
|
|
624
664
|
WHERE g.country = 'IL'
|
|
625
665
|
AND alt.isolanguage = 'en'
|
package/geo-sqlite.d.ts
CHANGED
|
@@ -3,13 +3,25 @@
|
|
|
3
3
|
import {Location} from '@hebcal/core';
|
|
4
4
|
|
|
5
5
|
declare module '@hebcal/geo-sqlite' {
|
|
6
|
+
export type AutoComplete = {
|
|
7
|
+
id: number | string;
|
|
8
|
+
value: string;
|
|
9
|
+
geo: 'geoname' | 'zip';
|
|
10
|
+
asciiname: string;
|
|
11
|
+
admin1?: string;
|
|
12
|
+
country?: string;
|
|
13
|
+
population?: number;
|
|
14
|
+
latitude?: number;
|
|
15
|
+
longitude?: number;
|
|
16
|
+
timezone?: string;
|
|
17
|
+
};
|
|
6
18
|
export class GeoDb {
|
|
7
19
|
constructor(logger: any, zipsFilename: string, geonamesFilename: string);
|
|
8
20
|
close(): void;
|
|
9
21
|
lookupZip(zip: string): Location;
|
|
10
22
|
lookupGeoname(geonameid: number): Location;
|
|
11
23
|
lookupLegacyCity(cityName: string): Location;
|
|
12
|
-
autoComplete(qraw: string):
|
|
24
|
+
autoComplete(qraw: string, latlong?: boolean): AutoComplete[];
|
|
13
25
|
cacheZips(): void;
|
|
14
26
|
cacheGeonames(): void;
|
|
15
27
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hebcal/geo-sqlite",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.2",
|
|
4
4
|
"author": "Michael J. Radwin (https://github.com/mjradwin)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hebcal"
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@hebcal/cities": "^3.1.2",
|
|
32
|
-
"@hebcal/core": "^3.
|
|
33
|
-
"better-sqlite3": "^7.5.
|
|
34
|
-
"pino": "^7.
|
|
35
|
-
"pino-pretty": "^7.
|
|
32
|
+
"@hebcal/core": "^3.36.2",
|
|
33
|
+
"better-sqlite3": "^7.5.1",
|
|
34
|
+
"pino": "^7.11.0",
|
|
35
|
+
"pino-pretty": "^7.6.1"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "rollup -c",
|
|
@@ -53,18 +53,18 @@
|
|
|
53
53
|
},
|
|
54
54
|
"license": "BSD-2-Clause",
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@babel/core": "^7.17.
|
|
57
|
-
"@babel/preset-env": "^7.
|
|
58
|
-
"@babel/register": "^7.17.
|
|
56
|
+
"@babel/core": "^7.17.10",
|
|
57
|
+
"@babel/preset-env": "^7.17.10",
|
|
58
|
+
"@babel/register": "^7.17.7",
|
|
59
59
|
"@rollup/plugin-babel": "^5.3.1",
|
|
60
|
-
"@rollup/plugin-commonjs": "^
|
|
60
|
+
"@rollup/plugin-commonjs": "^22.0.0",
|
|
61
61
|
"@rollup/plugin-json": "^4.1.0",
|
|
62
|
-
"@rollup/plugin-node-resolve": "^13.1
|
|
63
|
-
"ava": "^4.
|
|
64
|
-
"eslint": "^8.
|
|
62
|
+
"@rollup/plugin-node-resolve": "^13.2.1",
|
|
63
|
+
"ava": "^4.2.0",
|
|
64
|
+
"eslint": "^8.14.0",
|
|
65
65
|
"eslint-config-google": "^0.14.0",
|
|
66
66
|
"jsdoc": "^3.6.10",
|
|
67
67
|
"jsdoc-to-markdown": "^7.1.1",
|
|
68
|
-
"rollup": "^2.
|
|
68
|
+
"rollup": "^2.71.1"
|
|
69
69
|
}
|
|
70
70
|
}
|
package/zips-dummy.sql
CHANGED
|
@@ -10,4 +10,7 @@ CREATE TABLE ZIPCodes_Primary (
|
|
|
10
10
|
);
|
|
11
11
|
|
|
12
12
|
CREATE VIRTUAL TABLE ZIPCodes_CityFullText
|
|
13
|
-
USING
|
|
13
|
+
USING fts4(ZipCode,CityMixedCase,State,Latitude,Longitude,TimeZone,DayLightSaving,Population);
|
|
14
|
+
|
|
15
|
+
CREATE VIRTUAL TABLE ZIPCodes_CityFullText5
|
|
16
|
+
USING fts5(ZipCode,CityMixedCase,Population);
|