| This template does not require a rating on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||
| |||||||||||||||
coordinates in the template call
[edit]First of all, nice work @Hooman Mallahzadeh, it looks very promising. I will proceed to ask some questions now, though :)
For some reason, the template includes:
- |coordinates = {{#invoke:coordinates|coord2text|{{#:property:625}}}}
Why would we force the Wikidata property reading, why not take coordinates as an argument? That would sound more in line with the preference for local data whenever we need to override it. --Joy (talk) 16:27, 26 November 2025 (UTC)
- @Joy
Done You are right! I corrected that with this edit. "coordinates" argument is really needed for test-cases, but I think Wikidata coordinates is a good choice for the default behavior. Thanks. Hooman Mallahzadeh (talk) 16:35, 26 November 2025 (UTC)
label in the template call
[edit]For some reason, the template includes:
- |label = {{#ifeq: {{lc: {{{pushpin_label_position|}}} }} | none | | {{#if:{{{pushpin_label|}}}|{{{pushpin_label}}}|{{if empty|{{{name|}}}|{{{official_name|}}}|{{PAGENAMEBASE}}}}}} }}
Why are we taking pushpin_label* and name and official name parameters here, is this meant to take stuff from infobox settlement? (What if the pushpin label describes only one of the maps, but not all?) --Joy (talk) 16:30, 26 November 2025 (UTC)
- You are right! I corrected that with this edit. Thanks again. Hooman Mallahzadeh (talk) 16:43, 26 November 2025 (UTC)
- BTW 'MegedMap_label' has a typo, and it combines camelcase with snake case.
- At the same time, I still don't quite get the point. Is this supposed to match Module:MergedMap#L-76 args.label?
- This seems to be another case of passing things down to a child data source, but only passing one variable instead of many. --Joy (talk) 12:33, 27 November 2025 (UTC)
- @Joy Hi, No! There is no typo. I applied both 'label' or 'MegedMap_label' in this edit and it works well. Please inspect. Thanks, Hooman Mallahzadeh (talk) 12:44, 27 November 2025 (UTC)
- I mean the string "MegedMap_label" contains the word "Meged" that is missing a r to be "Merged" :) --Joy (talk) 12:46, 27 November 2025 (UTC)
- Can you move these examples to test cases, please? --Joy (talk) 12:46, 27 November 2025 (UTC)
- @Joy Hi, No! There is no typo. I applied both 'label' or 'MegedMap_label' in this edit and it works well. Please inspect. Thanks, Hooman Mallahzadeh (talk) 12:44, 27 November 2025 (UTC)
mapframe parameters
[edit]I noticed these as well:
- |zoom = {{{mapframe-zoom|}}}|marker = {{{mapframe-marker|}}}|shape = {{{mapframe-shape|}}}
Why not take all of the mapframe arguments instead of just these three? --Joy (talk) 16:31, 26 November 2025 (UTC)
- These should be added gradually, one by one. But I think these three are the main ones which have been used extensively. Others are not so important. Hooman Mallahzadeh (talk) 16:39, 26 November 2025 (UTC)
- I don't agree, if we know that these parameters exist, and that editors are using them, why not support them to make things easy for them? --Joy (talk) 12:27, 27 November 2025 (UTC)
naming convention
[edit]This template name is CamelCase, unlike the style of {{maplink}}, {{mapframe}}, {{location map}}.
The name also reflects a state that isn't future-proof - if we make this a standard, then people won't really know of non-merged maps :)
I'd go with something simple like {{multiple maps}} or even {{map choice}} / {{frame choice}} instead. --Joy (talk) 12:21, 27 November 2025 (UTC)
- @Joy I am really agree with you! This name is not good at all. But what do you propose for its name? I propose Template:OverlayedMaps and 'overlayMapsQuery' instead. Hooman Mallahzadeh (talk) 12:48, 27 November 2025 (UTC)
- In the last sentence above, I proposed three posibilities.
- I don't know that overlayed - or rather, overlaid - is useful enough here. It implies some sort of combination, not just a choice. --Joy (talk) 12:51, 27 November 2025 (UTC)
- I propose Template:MapSwitcher, because Template:switcher uses this name. Hooman Mallahzadeh (talk) 13:00, 27 November 2025 (UTC)
- Is there any code overlap between Module:Switcher and this module? --Joy (talk) 12:10, 30 November 2025 (UTC)
- Yes, these codes are exactly lines 75 to 89 of Module:MergedMap. Hooman Mallahzadeh (talk) 12:19, 30 November 2025 (UTC)
- So can we reuse it instead of copying and pasting? --Joy (talk) 12:20, 30 November 2025 (UTC)
- Good idea! But the problem is with line 4 of Module:Switcher. In fact, we can create a new module which takes a list and these two modules use that code segment. Then reuse that new Module. I can implement that. Hooman Mallahzadeh (talk) 12:25, 30 November 2025 (UTC)
- I mean we could just move lines 5-21 into its own function over there. p.main() would call it just the same, but this would allow us to call it from over here. --Joy (talk) 16:57, 30 November 2025 (UTC)
Agree That is great. Please do that. Thanks so much. Hooman Mallahzadeh (talk) 03:01, 1 December 2025 (UTC)
- Ohh No! Module:Switcher is slightly different. Please pay attention to line 8 and 15.
- We should create a fully general-purpose function. I think this is not possible. Just use the original code. Hooman Mallahzadeh (talk) 03:38, 1 December 2025 (UTC)
- I mean we could just move lines 5-21 into its own function over there. p.main() would call it just the same, but this would allow us to call it from over here. --Joy (talk) 16:57, 30 November 2025 (UTC)
- Good idea! But the problem is with line 4 of Module:Switcher. In fact, we can create a new module which takes a list and these two modules use that code segment. Then reuse that new Module. I can implement that. Hooman Mallahzadeh (talk) 12:25, 30 November 2025 (UTC)
- So can we reuse it instead of copying and pasting? --Joy (talk) 12:20, 30 November 2025 (UTC)
- Yes, these codes are exactly lines 75 to 89 of Module:MergedMap. Hooman Mallahzadeh (talk) 12:19, 30 November 2025 (UTC)
- Is there any code overlap between Module:Switcher and this module? --Joy (talk) 12:10, 30 November 2025 (UTC)
- I propose Template:MapSwitcher, because Template:switcher uses this name. Hooman Mallahzadeh (talk) 13:00, 27 November 2025 (UTC)
Labels for the data sources
[edit]I wouldn't call the mapframe item just "OSM" because:
- that's a somewhat obscure acronym for the general reader
- it doesn't actually visually look like the default openstreetmap.org style
- the technical implementation is more complex than just OSM - meta:Wikimedia Maps is the name over there, but that in turn seems not very informative
The phrase "Interactive map" seems better.
Likewise, I wouldn't use pushpin map labels without an indication that it's a pushpin map.
Maybe prefix or suffix them with "pushpin map"?
("Location map" would match {{location map}} better but it's too generic in this context, because other maps are also 'location maps'.)
--Joy (talk) 12:24, 27 November 2025 (UTC)
- @Joy I propose:
- Template:MapSwitcher for template name
- MarkedMap for pushpin
- RoadMap instead of OSM
- But certainly these needs more discussion. Maybe we need to consult an expert in field of Geography or a civil engineer. I try to do some search for that. Hooman Mallahzadeh (talk) 13:17, 27 November 2025 (UTC)
- @Joy Sorry again for pinging. Please see https://testbook.com/ias-preparation/types-of-maps-in-geography . I think these sort of maps are Road map. So I propose 'RoadMap' or 'InteractiveRoadMap' instead of OSM. Thanks again. Hooman Mallahzadeh (talk) 13:46, 27 November 2025 (UTC)
- I would definitely not use CamelCase because normal word capitalization and separation by spaces is customary in the Template namespace.
- I'm not sure if our OSM maps are just road maps given that they do render a lot of other features, not just road points of interest, such as the green and purple shapes. Calling it street maps would maybe be a good reminder of OpenStreetMap, but then that also implies settlements only. I think the interactive nature of these maps is their true distinguishing feature in this context.
- Because the mapframes also have markers, using 'marked' instead of pushpin sounds ambiguous.
- So this would mean the syntax would go from:
OSM # customMap1 # Iran # Asia # customMap2 # OSM1 # OSM2
- to
interactive # custom 1 # pushpin Iran # pushpin Asia # custom 2 # interactive 1 # interactive 2
- ? Seems far more user-friendly to me. --Joy (talk) 19:48, 29 November 2025 (UTC)
- @Joy
Agree Myself agree, because it is more user-friendly, but certainly it needs consensus. Thanks again. Hooman Mallahzadeh (talk) 05:47, 30 November 2025 (UTC)
- @Joy
- @Joy Sorry again for pinging. Please see https://testbook.com/ias-preparation/types-of-maps-in-geography . I think these sort of maps are Road map. So I propose 'RoadMap' or 'InteractiveRoadMap' instead of OSM. Thanks again. Hooman Mallahzadeh (talk) 13:46, 27 November 2025 (UTC)
Testing
[edit]Nice work on this. Just a few observations. I tried it out in an infobox on one of the fields, and it looks fine.
- The width of the mapframe should match the location maps, it's slightly larger now
- Caption size is slightly smaller than the infobox text
- Need some infobox-based and article-sized testcases so the effects of the code can be seen
Regs, The Equalizer (talk) 20:57, 27 November 2025 (UTC)
- @The Equalizer Hi, and thank you for your comment.
Done for number 1 and 2. Please inspect. - About testing, to be honest, test is a very time-consuming process and I cannot do more than 10 test-cases. I should note that even after millions of successful test, there is possibility for new bugs (I mean some appear after a couple of years of operation).
- So I need the help of Wikipedia Community for testing this template. Thanks again, Hooman Mallahzadeh (talk) 05:07, 28 November 2025 (UTC)
Error?
[edit]I don't know enough about template syntax to identify the cause; but the page for this template is in the hidden category Category:Pages with malformed coordinate tags, and I don't think that a properly formatted template should be there.
Also, in the second example in the documentation, why do all the radio buttons show maps of Tehran except the "OSM2" one, which shows a map of London? Deor (talk) 00:35, 30 November 2025 (UTC)
- @Deor Hi and thanks for your comment.
Done "Category:Pages with malformed coordinate tags" was for testcases, which has been corrected and removed through replacing it by manual coordinates. - In second example a "OSM of London" is only for test and can be removed easily, due to OSM2 = {{Infobox mapframe|id=Q84|zoom = 8}} in which Q84 is Wikidata item of London. Thanks, Hooman Mallahzadeh (talk) 05:38, 30 November 2025 (UTC)
My concerns
[edit]@Hooman Mallahzadeh: as promised, here are my thoughts on this. My primary concern is on how this will be implemented and the transition from using image map/pushpin map/mapframe in their current form.
- Module:Infobox mapframe is used on over 1.2 MILLION pages.
- Module:Location map on over 781,000 pages.
Even if we assume 100% overlap, that still leaves over 1.2 million pages that will need to be manually updated with the current implementation you have. In other words this type of edit will have to be performed 1.2 million+ times. Now in theory a bot can help, but as an experienced bot writer (User:ZackBot) and frequent user of JWB, I can tell you this is MUCH easier said than done.
So what I would encourage you to do, is to implement this at the template level. Make it so that all we have to update is the Infobox's call to Module:Infobox mapframe and Module:Location map. You should be able to {{#invoke:MergedMap|some_function}} in the infobox and use the existing parameters in the infobox.
Going back to the implementation you tested on London, what I'm picturing is a change to {{Infobox settlement}} that would automatically inherit the |pushpin_map=, |pushpin_map_caption=, |mapframe-zoom=, etc. values and display them as one merged map instead of as 3 or more separate maps.
I know I said earlier today NOT to start with {{Infobox settlement}}. I stand by that 100%, don't want to send mixed signals on that point. I'm just using London because that was a page where I know you had already implemented this so it just made the most sense to use it to explain my thoughts.
Let me know if what I am describing makes sense. If you are confused on it, I'm happy to elaborate more... Zackmann (Talk to me/What I been doing) 21:14, 3 December 2025 (UTC)
- @Zackmann08 Hi and thanks for your comment. I implemented your idea at Template:Infobox settlement/sandbox by these lines
| data27 = {{MergedMap|{{{mapQuery|{{#if:{{{pushpin_map|}}}|{{#ifeq: {{{mapframe|}}} | yes | {{{pushpin_map|}}}#OSM| {{{pushpin_map|}}} }} |
{{#ifeq: {{{mapframe|}}} | yes | OSM|}} }} }}}|
| mapframe-frame-width = 250
| mapframe-stroke-width = 2
| mapframe-length_km = {{{length_km|}}}
| mapframe-length_mi = {{{length_mi|}}}
| mapframe-width_km = {{{width_km|}}}
| mapframe-width_mi = {{{width_mi|}}}
| mapframe-area_km2 = {{{area_total_km2|}}}
| mapframe-area_ha = {{{area_total_ha|}}}
| mapframe-area_acre = {{{area_total_acre|}}}
| mapframe-area_sq_mi = {{{area_total_sq_mi|}}}
| mapframe-type = city
| mapframe-population = {{if empty|{{{population_metro|}}}|{{{population_total|}}}}}
| mapframe-marker = {{{mapframe-marker|museum}}}
| mapframe-caption = Interactive map of {{if empty|{{{name|}}}|{{{official_name|}}}|{{PAGENAMEBASE}}}}
| mapframe-zoom = {{{mapframe-zoom|9}}}
|border = infobox
|alt = {{{pushpin_map_alt|}}}
<!--
|caption ={{#if:{{{pushpin_map_caption_notsmall|}}}|{{{pushpin_map_caption_notsmall|}}}|{{#if:{{{pushpin_map_caption|}}}|{{{pushpin_map_caption}}}|{{#if:{{{map_caption|}}}|{{#if:{{{image_map|}}}||{{{map_caption}}}}}}}}}}}
-->
|float = center
|width = {{{pushpin_mapsize|}}}
|default_width = 250
|relief= {{{pushpin_relief|}}}
|AlternativeMap = {{{pushpin_image|}}}
|overlay_image = {{{pushpin_overlay|}}}
|coordinates = {{{coordinates|}}}
|label = {{#ifeq: {{lc: {{{pushpin_label_position|}}} }} | none | | {{#if:{{{pushpin_label|}}}|{{{pushpin_label}}}|{{#if:{{{name|}}}|{{{name}}}|{{{official_name|}}}}}}} }}
|marksize =16
|outside = {{{pushpin_outside|}}}
}}
- It fills mapQuery with pushpin data and if "mapframe = yes", then OSM will be the final map. I tested this sandbox version successfully at Moscow article. Please inspect. Thanks again. Hooman Mallahzadeh (talk) 06:58, 4 December 2025 (UTC)
- This final version of Template:Infobox settlement/sandbox accepts only one satellite map and only one picture map by this code:
{{Infobox settlement/sandbox
| satelliteMap = Moscow_by_Sentinel-2,_2020-05-11.jpg
| pictureMap = Moscow_territory_1922_1995.gif
| mapframe = yes
| pushpin_map = Russia#Europe
}}
- I think it is really well suited for templates like Template:Infobox settlement.
- Gotta get to work and have a busy few days but wanted to acknowledge that I saw your update. Bear with me and I'll respond when I can!
--Zackmann (Talk to me/What I been doing) 16:57, 4 December 2025 (UTC) - @Hooman Mallahzadeh: Ok so what you have done thus far is absolutely an improvement. Might be helpful for me to demonstrate some of what I am picturing. Module:Infobox mapframe has some 40+ named parameters. ALL of which must be supported by your implementation. Parsing your code it looks like all of those are supported by passing
inputArgsin Module:MergedMapGetOSM. Can you confirm? I will admit I have NOT had the time to do the testing I would like to do on your code so I am relying on you to explain some things and confirm functionality. If that is the case, you should really only need to pass the parameters that are being set by the infobox. So in my head the final version of this should be MUCH cleaner and look like the following:
...
| image3 = {{#invoke:MergedMap|main
| mapframe-frame-width = 250
| mapframe-stroke-width = 2
| ...
| mapframe-caption = Interactive map of {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
...
- In other words, the module should automatically inherit most of the parameters. Things like
|pushpin_map=or|pushpin_relief=or|coordinates=should be detected in the module viagetArgs(frame)(there will of course be the occasional outlier where some Infobox has decided to use|coor=instead of|coordinates=, but in those cases, you can pass the param into the module just like|mapframe-caption=above).
- FWIW I went through some MAJOR growing pains when I recently wrote Module:Person date. Initially I was passing all these parameters to a template that then called the module... But what I realized was that by using a template as a go between, I had to pass EVERY parameter to the template that I wanted to use in the module. By invoking the module directly in the infobox you get access to ALL parameters in the infobox. So in my case I was forced to make this edit to over 100+ Infoboxes. Since you are building a new Module/Template, I do not want to see you make the same mistakes I made...
- Additionally the if logic should also be handled in the module. So the ONLY code supplied in the infobox code is that that is setting a default.
- So for example, if you were looking at {{Infobox London station}}, you would also have a bit of code in that infobox setting the
|pushpin_map=Greater London(not exact syntax, but you hopefully get the idea).
- Likewise in {{Infobox Zoo}} you would have:
| mapframe-marker = zoo
| mapframe-marker = {{{mapframe-marker|zoo}}} <!-- NOT NEEDED see below -->
- Note that the second line is NOT necessary. You do not need to specify that. The way that Module:Infobox mapframe currently is implemented, if a transclusion supplies its own parameter value, that will override the template's default (can elaborate if that isn't clear).
- In any case, I think you are well on your way, but you still need to improve your logic a bit more. I want to reiterate that I like what you are doing, it just isn't quite there yet. Keep chugging away.
— Preceding unsigned comment added by Zackmann08 (talk • contribs) 04:08, 5 December 2025 (UTC)
- Yes, I confirm. All parameters are passed through getArgs of frame which returns a table containing parameter name and value. This clearness nowadays exist, by Template:MergedMap. You can test it.
...
| image3 = {{MergedMap
| mapframe-frame-width = 250
| mapframe-stroke-width = 2
| ...
| mapframe-caption = Interactive map of {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
...
- Is as clear as you said. It accepts all predefined parameters, and has some default value. This is the case about pushpin maps also. You can test it also.
- I removed some settings by this edit and then for test I added
|mapframe-marker = city
- to Template:MergedMap Then I try to override that at London article by |mapframe-marker=museum. Then result was that marker is musuem. So overriding scenario works well according to what you said, without any additional code (NOT necessary part).
- If I got your idea about
Additionally the if logic should also be handled in the module. So the ONLY code supplied in the infobox code is that that is setting a default.
- Such default scenario is well implemented. Because Template:MergedMap is a general-purpose template. To implement that, we should add "Greater London#" at the first part of "mapQuery" which makes it default. All Done! Thanks again. Hooman Mallahzadeh (talk) 06:28, 5 December 2025 (UTC)
- Again though, I would avoid using Template:MergedMap in the infoboxes... You have to use Module:MergedMap directly to get the benefit of access to all parameters... Zackmann (Talk to me/What I been doing) 06:32, 5 December 2025 (UTC)
- But implicit direct access exists in Template:MergedMap also. If you set any parameter at template, it would bypass to Module:MergedMap. What do you mean for "direct access"? Template has direct access too.
- Template:MergedMap has only 3 lines containing settings for id of page for testcases and a small setting for label.
- Personally, I think these small setting has no drawback.
- There is no difference between Template or Module. But I personally prefer Template one, because it is more convenient, and more common. Hooman Mallahzadeh (talk) 06:44, 5 December 2025 (UTC)
- I think I am missing something and it is too late at night my time... I will have to get back to you once I've slept... - Zackmann (Talk to me/What I been doing) 06:45, 5 December 2025 (UTC)
- Ok. Thanks for your feedbacks. I hope sleep well. But I am ready to implement Module version also without these two lines. Hooman Mallahzadeh (talk) 06:48, 5 December 2025 (UTC)
- Ok so I did a quick test....
- If you remove this line and then try to use
|mapframe-zoom=as in this version of my sandbox, the parameter does NOT get passed to your code. This means that ONLY the parameters that you explicitly pass to the template, get passed to your module. - Again I would point you to this edit I had to make for Module:Person date. By invoking the module directly, I now get access to the parameters present in the template. I do not need to specify
|birth_date=to pass it through a template to the module code. The module itself can look for the call to{{{birth_date}}}|birth_date=. This is why Infobox mapframe is invoked in every infobox instead of calling {{Infobox mapframe}}. - For example see {{Infobox zoo}} line 34... You only need to specify the parameters you want to make a custom default for. If a specific article, say San Diego Zoo, wants to set a custom value for
|mapframe-height=, that can be done in the article with no changes to {{infobox zoo}} needed. If you use the template version, you have to accept that param and pass it through the template to the module... Hope that makes sense. Zackmann (Talk to me/What I been doing) 06:57, 5 December 2025 (UTC)- @Zackmann08 Sorry again for pinging.
Done Please inspect Template:Infobox settlement/sandbox. It now uses Module version and accepts all arguments which are inherited and overridden. It is tested successfully. Hooman Mallahzadeh (talk) 10:00, 5 December 2025 (UTC)
- No need to appologize for pinging me. I literally asked you to in a previous comment. Looking much better. Gotta get to work, but I'll look it over in depth this weekend when I will have more time to actually do some A-B testing.
Zackmann (Talk to me/What I been doing) 16:24, 5 December 2025 (UTC)
Thank you so much. Hooman Mallahzadeh (talk) 09:49, 6 December 2025 (UTC)
- No need to appologize for pinging me. I literally asked you to in a previous comment. Looking much better. Gotta get to work, but I'll look it over in depth this weekend when I will have more time to actually do some A-B testing.
- @Zackmann08 Sorry again for pinging.
- Ok. Thanks for your feedbacks. I hope sleep well. But I am ready to implement Module version also without these two lines. Hooman Mallahzadeh (talk) 06:48, 5 December 2025 (UTC)
- I think I am missing something and it is too late at night my time... I will have to get back to you once I've slept... - Zackmann (Talk to me/What I been doing) 06:45, 5 December 2025 (UTC)
- Again though, I would avoid using Template:MergedMap in the infoboxes... You have to use Module:MergedMap directly to get the benefit of access to all parameters... Zackmann (Talk to me/What I been doing) 06:32, 5 December 2025 (UTC)
- Ok, so after fixing the indent levels I can finally comment at the end. I've noticed a few of the templates in this set. Please completely stop using this on live articles until all templates and modules are fully documented. I don't want to sound harsh, but Module:MergedMap and Module:MergedMapGetPushPin for example are unacceptable and I will revert all uses if it continues like this. Additionally, please follow standard practices. Do not create Module:MapSwitcher/sandbox without Module:MapSwitcher or Module:MergedMap/CoordinateOperations/sandbox without Module:MergedMap/CoordinateOperations. If it isn't ready, work on it in your sandbox Module:Sandbox/Hooman Mallahzadeh/.... Finally, do not use camel case names. WP:TPN is pretty clear on that. Rename this set before you continue using it in live articles please. Gonnym (talk) 16:03, 6 December 2025 (UTC)
- @Gonnym Hi, and thank you for your comment. Template:MergedMap is a general-purpose template and we are trying to customize that at for example Template:Infobox settlement.
- I tested this template for about 2 weeks, 1 week for original and one for customized version of it, and many bugs have been resolved.
- We are trying to make it ready as soon as possible, so we need a full test of all aspects, if anyone finds a bug, I will appreciate him.
- You said:
Module:MergedMap and Module:MergedMapGetPushPin for example are unacceptable
- Why?
- I don't know how to nominate Module:MapSwitcher/sandbox and Module:MergedMap/CoordinateOperations/sandbox for deletion please guide me.
- Please note that merging maps is a very powerful and good feature of Infoboxes and it should be implemeted as soon as possible. Thanks again. Hooman Mallahzadeh (talk) 16:24, 6 December 2025 (UTC)
- @Gonnym At the end, Module:MergedMap is at the final stage of testing for wide usage. Please be patient to complete this final stage, because it should be implemented on millions of articles very soon. So please tolerate some test cases. We should find its bugs as many of bugs have been detected and resolve till now. Possibly some may exist. Hooman Mallahzadeh (talk) 16:34, 6 December 2025 (UTC)
- Replies:
Why?
- creating a sub-page without a parent is non-standard. WP:G8 is a speedy deletion criteria exactly for such pages.I don't know how to nominate
- If you want to delete them, add {{Db-g7}}is at the final stage of test for wide usage
- again, you've already added this to live articles. Live articles aren't here for testing. You should create tests at Module:MergedMap/testcases. You should work out issues there and when ready move to live.
- And again, a template or module shouldn't go live without full documentation. Gonnym (talk) 16:44, 6 December 2025 (UTC)
- @Gonnym Ok, thanks again for your response. Please pay attention that Template:MergedMap has a full documentation containing parameters and goal and test cases.
- According to Special:WhatLinksHere/Template:MergedMap it has only 16 live test cases, I think we can consider it as early stage of A/B testing to find its bugs and no bug has been reported.
- But I really promise not to extend these 16 test cases, until user Zackmann accepts this template.
- Thanks again. Hooman Mallahzadeh (talk) 16:52, 6 December 2025 (UTC)
- @Gonnym As you said, all these modules are nominated for deletion:
- Module:MapSwitcher/sandbox
- Module:MergedMap/CoordinateOperations/sandbox
- Module:MergedMap/MathematicalOperations/sandbox
- Module:MergedMap/CoordinateOperations/sandbox
- Module:MergedMap/FrameOperations/sandbox
- Module:MergedMap/MarkerOperations/sandbox
- Module:MergedMap/MapBorderOperations/sandbox
- Module:MergedMapGetImage/sandbox
- I try to create documentation for all modules of MergedMap project as soon as possible. Thanks again for your guidance. Hooman Mallahzadeh (talk) 17:06, 6 December 2025 (UTC)
- @Gonnym See, some live tests are required, because few people evaluate non-live test cases. For me and you there is no bug, but if some special OS or browser or some Android or IOS version encounter bugs, then it would be reported to us.
- Again, I really promise not extend these 16 live test cases, but some live tests after 1 week of implementation is really required.
- Thanks again for your response. Best regards. I hope neat Infoboxes of Wikipedia articles by this template in near future. Hooman Mallahzadeh (talk) 17:22, 6 December 2025 (UTC)
Done Some documentation is provided for Module:MergedMap and Module:MergedMapGetPushPin. But certainly it should be completed. Hooman Mallahzadeh (talk) 17:57, 6 December 2025 (UTC)
- I share some of Gonnym's concerns. User:Hooman Mallahzadeh I think it would be best to remove this from articles as the current implementation in examples such as London is not how this will be implemented in the end (see my previous comment about not wanting to have to manually update over a million pages).
- I understand your concerns about not as many people evaluating testcases, but when this is ready for a full rollout, that is what a RFC is for (which I strongly advise using for this as it is an absolutely enormous change and requires consensus).
- Template editors, like myself and Gonnym absolutely do monitor and evaluate testcases. Right now those are the people that matter. When this is ready for a full rollout, which it is not yet, we will start with a much smaller infobox with a few dozen uses and file an RFC. Pushing this into uses of {{Infobox settlement}} is NOT the way to move forward and risks the entire project being rejected because of process rather what you are actually trying to achieve.
- I have set aside some time this afternoon to do some testing of your code and will come back with some more feedback later. In the meantime, please remove this from the articles you have added it to. You can instead setup some side-by-side tests at Template:MergedMap/testcases. Look into {{testcase table}} and its
|_template1=&|_template2=. Zackmann (Talk to me/What I been doing) 18:49, 6 December 2025 (UTC)- @Gonnym
Done According to Special:WhatLinksHere/Template:MergedMap all 16 live usages have been removed. Hooman Mallahzadeh (talk) 19:50, 6 December 2025 (UTC)
- @Gonnym Hi Dear. There exists 3 elemets in Special:WhatLinksHere/Template:MergedMap which other users reverted my edit by the argument of "What discussion?" please see this edit this edit and this edit.
- I really want you to tolerate these live edits until we reach final implementations. I resolved 4 new bugs yesterday.
- Thanks again. Best regards. Hooman Mallahzadeh (talk) 09:55, 7 December 2025 (UTC)
- User:Hooman Mallahzadeh you reverted your edits as well as other improvements to these articles. Again, this is absolutely not ready for use in articles. Zackmann (Talk to me/What I been doing) 16:35, 7 December 2025 (UTC)
- @Zackmann08 No I didn't revert. Someone else has reverted my edits. That's not my fault. Please pay attention to the editors of these edits. Thanks, Hooman Mallahzadeh (talk) 16:38, 7 December 2025 (UTC)
- User:Hooman Mallahzadeh see this edit... Why are you changing the area and population values and claiming in is
According to discussion
(which I will note you did not link to). To then accuse ME of not paying attention to who is performing these edits is unacceptable. I have been on your side since the beginning of you creating this template. You are starting to loose my support by your actions and inappropriate responses. Zackmann (Talk to me/What I been doing) 16:43, 7 December 2025 (UTC)- I think you misunderstood. No, User:AwerDiWeGo reverted this my edit . That's not my fault. Please pay attention to role of AwerDiWeGo in https://en.wikipedia.org/w/index.php?title=Madrid&action=history.
- Second one is AwerDiWeGo, and please read edit summary: "Undid revision 1326043727 by Hooman Mallahzadeh (talk) What discussion? Concerning what? Please clarify and limit what you change to what you really want to change, instead of an incomprehensible wholesale revert that undoes some improvements." Hooman Mallahzadeh (talk) 16:49, 7 December 2025 (UTC)
- @Zackmann08 All three items in Special:WhatLinksHere/Template:MergedMap are not my fault. I reverted Template:MergedMap and try to revert them too. Thanks, Hooman Mallahzadeh (talk) 16:53, 7 December 2025 (UTC)
- User:Hooman Mallahzadeh you are not getting it. When you tried to remove this template, with the diff I linked to above, you did not just remove the template! You removed and changed a BUNCH OF OTHER STUFF TOO. Actually LOOK at this diff. Explain why you changed the population and area while you were removing this template. YOU reverted to a previous state without checking what you were doing. You also did not link to this discussion in your edits. AwerDiWeGo was absolutely correct to revert your edits! I would have done the same!
- Same goes for this bizarre edit of yours. Mason.Jones was also correct to revert you.
- If you cannot understand what you did wrong here, I have major concerns about moving forward at all on this project. Zackmann (Talk to me/What I been doing) 16:55, 7 December 2025 (UTC)
- @Zackmann08 I can't understand why area and population values has been changed in that edit. It was my fault but I don't know why this has been occurred. Really not intentionally.
- Dear I have spent about 2 weeks for implementing this idea. Each day about 5 or 6 hours. I am not really seeking trouble, because I have enough. You said:
You are starting to loose my support
- But I really need support. So if you think my edits are bothering society, certainly I don't edit more, and would never ping someone. I really need support to live well.
- If you ask me to leave English Wikipedia, I would leave it rapidly and start my personal jobs. No edits from now on. Hooman Mallahzadeh (talk) 17:13, 7 December 2025 (UTC)
- What happened is you reverted to a previous version without checking the diffs. You did not realize that you were reverting other editors besides yourself.
- No one is asking you to leave English Wikipedia. What I am asking is:
- Slow down. There is no rush to get this implemented overnight. It is FAR more important to do it right than to do it quickly.
- Do not accuse other editors who are FAR more experienced than you of not paying attention, especially when you are the one at fault.
- Zackmann (Talk to me/What I been doing) 17:30, 7 December 2025 (UTC)
- @Zackmann08 I really apologize if I rush or accused other editors. I hope you and others forgive me, and also God forgives me. I really try to don't rush and accuse others from now on. But I don't know why the idea of leaving English Wikipedia is gradually sparking in my mind. Hooman Mallahzadeh (talk) 04:02, 8 December 2025 (UTC)
- If your decision is to RAGEQUIT at this point then so be it. I think it would be a mistake but not really up for this fight anymore. Best of luck to ya. Zackmann (Talk to me/What I been doing) 04:28, 8 December 2025 (UTC)
- @Zackmann08 I really apologize if I rush or accused other editors. I hope you and others forgive me, and also God forgives me. I really try to don't rush and accuse others from now on. But I don't know why the idea of leaving English Wikipedia is gradually sparking in my mind. Hooman Mallahzadeh (talk) 04:02, 8 December 2025 (UTC)
- User:Hooman Mallahzadeh see this edit... Why are you changing the area and population values and claiming in is
- @Zackmann08 No I didn't revert. Someone else has reverted my edits. That's not my fault. Please pay attention to the editors of these edits. Thanks, Hooman Mallahzadeh (talk) 16:38, 7 December 2025 (UTC)
- User:Hooman Mallahzadeh you reverted your edits as well as other improvements to these articles. Again, this is absolutely not ready for use in articles. Zackmann (Talk to me/What I been doing) 16:35, 7 December 2025 (UTC)
- @Gonnym
- @Gonnym As you said, all these modules are nominated for deletion:
- Replies:
- @Gonnym At the end, Module:MergedMap is at the final stage of testing for wide usage. Please be patient to complete this final stage, because it should be implemented on millions of articles very soon. So please tolerate some test cases. We should find its bugs as many of bugs have been detected and resolve till now. Possibly some may exist. Hooman Mallahzadeh (talk) 16:34, 6 December 2025 (UTC)
Bugs
[edit]@Hooman Mallahzadeh: Ok so I've started some testing and I'm sorry to say there are lots of issues popping up already... I went ahead and created Template:Infobox settlement/mergedmap. Let's not use Template:Infobox settlement/sandbox anymore. Leave that for other testing. This project is going to be a long one, so we should use our own sandbox that others are less likely to need/mess with.
Please start by look at the testcases I have created.
- Empty case - The mapframe is displaying an empty row when there is no info to be shown. This should not be the case.
- Case 1 - MergedMap is not respecting the logic for
|onByDefault= - Case 2 - Mapframe parameters set in the Infobox are not being used or passed to the module.
Happy to continue testing but these are indicative of a larger problem. The fact that |mapframe-...= params are not working means you aren't correctly parsing the input logic. Zackmann (Talk to me/What I been doing) 19:45, 6 December 2025 (UTC)
- @Zackmann08
Done for Empty case.- No need for onByDefault. I created this template to get rid of onByDefault logic, because it works by mapQuery and all settings applied by that.
Done Mapframe-zoom and other settings works successfully. Please try again.
- Thanks again, Hooman Mallahzadeh (talk) 20:03, 6 December 2025 (UTC)
- Sorry please test again now. Thanks, Hooman Mallahzadeh (talk) 20:08, 6 December 2025 (UTC)
- I disagree with you 100% on
|onByDefault=. That is there for a reason and needs to continue to function as before. With your current implentation, tens of thousands of maps would vanish from uses of {{Infobox settlement}} for no reason. You don't need to use the specific parameter|onByDefault=but the mapframe should be able to be turned on/off by default as before. - Additionally:
- Please explain the purpose of this
|mapQuery=which seems to add extra un-needed logic. - Please refactor your logic to move the
<div>...</div>logic out of the template. That should be added by the module and not be required in the implementation in {{infobox settlement/mergedmap}} - All of the string replace logic that you are performing needs to be moved to the module. Again, the implementation of this in an infobox needs to be as clean and simple as possible. Complex string replacement/regexs belong in the module, not the call to said module.
- Please explain the purpose of this
- Zackmann (Talk to me/What I been doing) 20:12, 6 December 2025 (UTC)
Done for <div> logic inside module.- OnByDefault is set by state of existence od Pushpin and sattelite maps. But the general-purpose Template:MergedMap accepts only one argument which is mapQuery that specifies what maps should be included. If it contains "OSM", then OSM map would be included in Switcher element, without any logic about OnByDefault.
- About string replace logic, I think for removing these two lines
- {{#if: {{{mapQuery|}}}{{{pushpin_map|}}}{{{mapframe|}}}{{{satelliteMap|}}}{{{pictureMap|}}}|
- and
- {{{mapQuery|{{#invoke:String|replace| {{#if:{{{pushpin_map|}}}|{{{pushpin_map|}}}^}}{{#ifeq:{{{mapframe|}}}|yes|OSM^}}{{#if:{{{satelliteMap|}}}|customMap1^}}{{#if:{{{pictureMap|}}}|customMap2^}}|pattern= ^ |replace= # }}}}}
- We need a custom module dedicated to settlement infoboxes which contains these logic in module level. But I think even if such customized module is easy to implement, it is not necessary because such customized module is not reusable. Just use general purpose module one and add some arguments to it.
- Thanks again. Hooman Mallahzadeh (talk) 20:47, 6 December 2025 (UTC)
- You need to realize that this is NOT just for {{Infobox settlement}} but for all infoboxes that use Module:Infobox mapframe so your solution of a
a custom module dedicated to settlement infoboxes
is NOT a viable solution. That would mean every other infobox that uses this would also need a custom module in order to implement your code. You need to think bigger picture, not just one specific use case. - The
|onByDefault=logic will certainly change as we don't need to turn off the mapframe if pushpin map is present anymore but:- As I stated above, you current logic will result in the maps vanishing from tens of thousands of pages. That is 100% unacceptable and absolutely must be fixed. That really isn't up for debate. You cannot make a change to an infobox that will remove information from pages without a clear reason (such as an RFC stating that info is no longer viable)
- What about cases where the Infobox is embedded? Then if you don't turn off the maps by default when embedded, you end up with duplicate maps, one in the parent and one in the child. This logic is present in many infoboxes where they call
|onByDefault=.
- Zackmann (Talk to me/What I been doing) 22:02, 6 December 2025 (UTC)
- @Zackmann08 For settlement logic
Done. In Module:MergedMap/settlement I implemented all logic for settlement, please inspect. In Template:Infobox settlement/sandbox, it is called with one line without any logic. i.e. | data27 = {{#invoke:MergedMap/settlement|main}}- For onByDefaultlogic
Done onByDefault logic implemented successfully at Module:MergedMap/settlement. Hooman Mallahzadeh (talk) 06:29, 7 December 2025 (UTC)
- @Zackmann08 For switcher test case.
Done implemented and tested successfully. Please inspect. Thanks again. Hooman Mallahzadeh (talk) 09:27, 7 December 2025 (UTC)
- All test cases are done successfully! Hooman Mallahzadeh (talk) 15:06, 7 December 2025 (UTC)
- @Zackmann08 Ok, did you inspect test cases? I am waiting for your feedbacks, on this template and Template:Infobox settlement/mergedmap, when you have time. Because about 70 hours (14 days * 5 hours = 70 hours) I have spent on this project. Thanks again. Hooman Mallahzadeh (talk) 09:07, 8 December 2025 (UTC)
- Again you are rushing things that have no need to be rushed. I get you have spent time on this, but there is no rush. I have MULTIPLE projects I am working on, not to mention a job off wikipedia and other things to do. I am helping you when I can. You pushing me and bugging me to check things right away doesn't help or encourage me to work with you. It does the exact opposite.
- I will also point out that the the first 4 tests I ran on the testcases page ALL failed. Now I will give you credit, you immediately fixed them... But this doesn't fill me with confidence. You clearly have not done much testing yourself as the test cases I ran were very basic cases. The fact that they failed (and you clearly had not tried them) is another indication that you are rushing something that needs to be done MUCH slower.
- I would like to see you generate some actual test cases based on how this would be used in articles. DO NOT insert it into articles. Instead, follow the cleaner and simple pattern I have setup at Template:MergedMap/testcases. I should not need to flush out every mistake. You should be able to find them yourself. The issue is that you are focusing on ONE use case and not considering the various ways this will affect over half a million pages.
- I will do some more testing when I have time.
- If you have questions, feel free to ping me and I will answer you when I can. DO NOT ping me again to ask why I haven't yet reviewed the code, to say how hard you have worked on this or talk about how much time you have spent. Those types of pings will encourage me to walk away. Zackmann (Talk to me/What I been doing) 19:56, 8 December 2025 (UTC)
- @Zackmann08 Ok, did you inspect test cases? I am waiting for your feedbacks, on this template and Template:Infobox settlement/mergedmap, when you have time. Because about 70 hours (14 days * 5 hours = 70 hours) I have spent on this project. Thanks again. Hooman Mallahzadeh (talk) 09:07, 8 December 2025 (UTC)
- All test cases are done successfully! Hooman Mallahzadeh (talk) 15:06, 7 December 2025 (UTC)
- @Zackmann08 For switcher test case.
- @Zackmann08 For settlement logic
- You need to realize that this is NOT just for {{Infobox settlement}} but for all infoboxes that use Module:Infobox mapframe so your solution of a
- I disagree with you 100% on
- Sorry please test again now. Thanks, Hooman Mallahzadeh (talk) 20:08, 6 December 2025 (UTC)
Please consult me
[edit]@Joy@The Equalizer@User:Jonesey95 Please read the last two threads in this discussion page. I am at the Razor's edge for Wikipedia:Rage quit. But I need your consult to do that. If your opinion is that this action is true, I will do that immediately, to protect my personality. I want you to be quite explicit about this action without any embarrassment.
If after reading these two threads, you consult "Leave English Wikipeia!", I will do that immediately. Please feel free. I am open for insult or irritation. Just consult please. In Iran we have an idiom that says: "Once die, once cry". Hooman Mallahzadeh (talk) 04:13, 9 December 2025 (UTC)
- I see a passionate editor (you) who is working hard to pursue a new project, and multiple other editors who are providing feedback. I don't see anything to quit over. It sounds like you are frustrated and tired, and that may be leading you to make a few errors. Take a break. Go outside and look at the sky and the trees. Get some sleep. Come back in a few days. You will feel better about everything. – Jonesey95 (talk) 05:41, 9 December 2025 (UTC)
- I second what Jonesey95 has said. Please DO NOT quit over this, but I recommend taking a break. You will feel better and come back refreshed.
Zackmann (Talk to me/What I been doing) 05:53, 9 December 2025 (UTC)
- I second what Jonesey95 has said. Please DO NOT quit over this, but I recommend taking a break. You will feel better and come back refreshed.
- First and foremost always protect one's mental health - this is a volunteer-led site, you don't actually need to do this and there are no deadlines. You have a life, fam, friends, socials outside of Wiki. But it is great to not just add content to existing articles but also go the next level and achieve some new functionality for the site. The efforts are very much appreciated as the maps integration has been stale for a while, those pushpin maps are so 2010. While you are being very challenged on this, but the end result will mean lots of truly enhanced articles and you'll get an endorphin rush from the improvements. I however get the checks and balances needed to ensure the functionality does work without wide reaching impacts to pages. Hang in there mate! Regs, The Equalizer (talk) 11:33, 9 December 2025 (UTC)
- I think this is a good place to mention that WP:Wikipedia is a volunteer service. --Joy (talk) 15:54, 10 December 2025 (UTC)