Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Features for extending support to integrated circuit design applications #15451

Open
1 of 3 tasks
sunilkpai opened this issue Dec 30, 2023 · 8 comments
Open
1 of 3 tasks

Comments

@sunilkpai
Copy link
Contributor

sunilkpai commented Dec 30, 2023

Is your feature request related to a problem? Please describe.
I am intending to build a Vue/Vite app using openlayers for integrated chip feature rendering. I think many of openlayers' features already satisfy the needs in this field, and it appears to be a perfect fit for such an application, despite the fact that most applications appear to focus on geographic analysis. To this end, there are som changes that I think could go a long way to enabling chip rendering, and I am happy to aid in these tasks if this is viewed as a fruitful change / useful application.

If this isn't seen as useful / a good idea, please let me know or redirect me to a better solution / framework for my application.

Describe the solution you'd like
Below are a couple of features from the top of my head that I think would be ideal for chip-scale approaches:

  • Allow ScaleLine resolution down to nanometers (currently microns is the lowest).
  • Add support for grid lines for flat-world projections (similar to graticule except for flat maps).
  • Enable measurements such that one can both snap to a feature and highlight the snapped edge at the same time without excessive slowdown.

Relevant code sandbox (under development): https://codesandbox.io/p/sandbox/gdsview-lsw7y4

There are probably many more things, but these seem the most relevant / concrete.

@ahocevar
Copy link
Member

Thanks for getting in touch, @sunilkpai.

Allow ScaleLine resolution down to nanometers (currently microns is the lowest).

A pull request that adds nanometers would be appreciated.

Add support for grid lines for flat-world projections (similar to graticule except for flat maps).

That should be supported already. If you feel something is missing or broken, a minimal reproduction example would help to understand.

@sunilkpai
Copy link
Contributor Author

sunilkpai commented Dec 30, 2023

A pull request that adds nanometers would be appreciated.

Will get started on this, thank you!

That should be supported already. If you feel something is missing or broken, a minimal reproduction example would help to understand.

Could you clarify? I tried using graticule, but the issue is that intervals are not represented in microns as desired, but rather in degrees. Is there some other solution you are hinting at here?

@ahocevar
Copy link
Member

Would you mind sharing your attempt with Graticule?

@sunilkpai
Copy link
Contributor Author

@ahocevar
Copy link
Member

Ok, I see. You're absolutely right. The graticule currently always displays a grid in geographic coordinates. I agree it would make sense to make the Graticule's projection configurable. The default should be EPSG:4326, i.e. what it currently only supports. If you'd be able to create a pull request for that too, it would be appreciated. Thanks in advance!

@sunilkpai
Copy link
Contributor Author

sunilkpai commented Dec 30, 2023

I managed to change some args to get closer to the desired behavior using (see modify sandbox above):

intervals: [10000, 1000, 100, 10, 1, 0.1, 0.01, 0.001, 0.0001],
lonLabelFormatter: function (r) {
  return Math.round(r * 10000) / 10000;
},
latLabelFormatter: function (r) {
  return Math.round(r * 10000) / 10000;
},

Is this a viable solution or would it be better to configure via the projection?

@sunilkpai
Copy link
Contributor Author

sunilkpai commented Dec 31, 2023

One other issue though @ahocevar. By default in the above sandbox (ie without any further zooming), the I expect to see the Graticule based on the minZoom option but I do not see it in the above example. You need to zoom in to see it at a higher zoom. Meanwhile, maxZoom option does appear to work...

As for the projection PR, I think this may be relevant: #15077

@mike-000
Copy link
Contributor

mike-000 commented Jan 1, 2024

@sunilkpai #15077 might be a good starting point but it is ignoring the view projection's world extent. For an EPSG:4326 graticule the graticule projection world extent covers the whole world, so only the view projection's world extent is needed to restrict the graticule, but in the case of graticules for local projections (e.g. UTM kilometer grids) I think the intersection of the view projection's and graticule projection's world extents should be used instead (allowing for one or both of those to cross the antimeridian).

Ideally multiple local graticules could be supported as in https://norgeskart.no/#!?project=Fastmerker&layers=1002,1017&zoom=8&lat=7197864.00&lon=396722.00&p=searchOptionsPanel where UTM zone 33 is used as the view projection for the whole of Norway but kilometer grids for local UTM/MGRS zones are also displayed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants