{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Coordinate System Chooser Service","description":"Accelerate E&P application development and protect your innovation by consuming our Data and Domain APIs / Platform APIs.","lang":"en-US","meta":[{"name":"robots","content":"noindex"}],"llmstxt":{"hide":false}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"coordinate-system-chooser-service","__idx":0},"children":["Coordinate System Chooser Service"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"coordinate-system-chooser-service-extension","__idx":1},"children":["Coordinate System Chooser Service Extension"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["INTViewer provides a mechanism to allow users to select a ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/solutions/intviewer/other-useful-intviewer-apis/working-with-coordinate-reference-systems"},"children":["coordinate reference system"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ICoordinateSystemChooserService and ICoordinateSystemChooser interfaces must be implemented to add a CoordinateSystemChooserService. Implementations of ICoordinateSystemChooserService provide a factory method to create ICoordinateSystemChooser instances and also let the platform know how to map epsg codes to coordinate system names. Implementations of ICoordinateSystemChooser describe how a coordinate system is choosen."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"public class GisCoordinateSystemChooserService implements ICoordinateSystemChooserService {\n    @Override\n    public ICoordinateSystemChooser createChooser(String epsgCode) {\n        return new GisCoordinateSystemChooser(epsgCode);\n    }\n    @Override\n    public String getCoordinateSystemName(String epsgCode) {\n        String name = ...\n        if (name == null)\n           name = \"Unknown epsgCode (\" + epsgCode + \");\n        return name;\n    }\n}\npublic class GisCoordinateSystemChooser implements ICoordinateSystemChooser {\n    private final String epsgCode;\n    public GisCoordinateSystemChooser(String epsgCode) {\n        this.epsgCode = epsgCode;\n    }\n    @Override\n    public void display(final ICoordinateSystemSelectionListener l) {\n        String epsgCode = ...\n        if (epsgCode != null) // user selected a epsgCode\n            l.coordinateSystemSelected(epsgCode);\n    }\n}\npublic void addAliasEPSGCode(String uniqueProjectionName, String aliasEPSGCode, cgRect areaOfUse) {\n    // ignored\n}\npublic String getAliasEPSGCode(String uniqueProjectionName, cgRect areaOfUse) {\n    // ignored\n}\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To register a coordinate system chooser service add the following to the layer.xml of the plugin that will provide the service."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"<folder name=\"CoordinateSystemChooserService\">\n    <file name=\"com-interactive-gis-plugins-GisCoordinateSystemChooserService.instance\"/>\n</folder>\n","lang":"xml"},"children":[]}]},"headings":[{"value":"Coordinate System Chooser Service","id":"coordinate-system-chooser-service","depth":1},{"value":"Coordinate System Chooser Service Extension","id":"coordinate-system-chooser-service-extension","depth":2}],"frontmatter":{"title":"Coordinate System Chooser Service","pageId":"other-useful-intviewer-apis/coordinate-system-chooser-service","seo":{"title":"Coordinate System Chooser Service"}},"lastModified":"2026-10-22T14:32:05.579Z","pagePropGetterError":{"message":"","name":""}},"slug":"/solutions/intviewer/other-useful-intviewer-apis/coordinate-system-chooser-service","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}