GeoNorgeAPI 4.0.4
dotnet add package GeoNorgeAPI --version 4.0.4
NuGet\Install-Package GeoNorgeAPI -Version 4.0.4
<PackageReference Include="GeoNorgeAPI" Version="4.0.4" />
<PackageVersion Include="GeoNorgeAPI" Version="4.0.4" />
<PackageReference Include="GeoNorgeAPI" />
paket add GeoNorgeAPI --version 4.0.4
#r "nuget: GeoNorgeAPI, 4.0.4"
#:package GeoNorgeAPI@4.0.4
#addin nuget:?package=GeoNorgeAPI&version=4.0.4
#tool nuget:?package=GeoNorgeAPI&version=4.0.4
GeoNorgeAPI
C# API for communicating with GeoNorge.no through the CSW Service
Getting Started
To install GeoNorgeAPI, run the following command in the Package Manager Console:
PM> Install-Package GeoNorgeAPI
Example code
using www.opengis.net;
using GeoNorgeAPI;
public class MyClass {
public void MyMethod() {
GeoNorge api = new GeoNorge();
SearchResultsType result = api.Search("flomsone");
Console.WriteLine(result.numberOfRecordsMatched + " metadata found");
}
}
Security
From version: 2.1.1 (07.04.2014)
The API is using SSL to communicate with www.geonorge.no. Use your credentials like this to perform Insert/update/delete operations:
GeoNorgeAPI.GeoNorge api = new GeoNorgeAPI.GeoNorge("myusername", "mypassword");
MD_Metadata_Type metadata = new MD_Metadata_Type();
// ... add information to the metadata object
var transaction = _geonorge.MetadataInsert(metadata);
Console.WriteLine(transaction.TotalInserted + " metadata inserted.");
Credentials can be acquired from your Geodatakoordinator at Kartverket.
SimpleMetadata
The MD_Metadata_Type is quite large and complex since it is based on the ISO 19139 standard. This project contains a wrapper SimpleMetadata that does all the heavy lifting and manipulating of the MD_Metadata_Type object for you!
Example of use of SimpleMetadata
using GeoNorgeAPI;
GeoNorge api = new GeoNorge("myusername", "mypassword");
SimpleMetadata simpleMetadata = SimpleMetadata.CreateDataset();
simpleMetadata.Title = "This is my dataset!";
simpleMetadata.Abstract = "This is the abstract telling you everything you need to know about this dataset.";
simpleMetadata.ContactPublisher = new SimpleContact
{
Name = "John Smith", Email = "nothing@example.com", Organization = "My organization", Role = "publisher"
};
SimpleMetadata now contains a MD_Metadata_Type that looks like this when serialized to XML:
<?xml version="1.0" encoding="utf-8"?>
<gmd:MD_Metadata xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gmd="http://www.isotc211.org/2005/gmd">
<gmd:hierarchyLevel>
<gmd:MD_ScopeCode codeList="http://www.isotc211.org/2005/resources/Codelist/ML_gmxCodelists.xml#MD_ScopeCode" codeListValue="dataset" />
</gmd:hierarchyLevel>
<gmd:identificationInfo>
<gmd:MD_DataIdentification>
<gmd:citation>
<gmd:CI_Citation>
<gmd:title>
<gco:CharacterString>This is my dataset!</gco:CharacterString>
</gmd:title>
</gmd:CI_Citation>
</gmd:citation>
<gmd:abstract>
<gco:CharacterString>This is the abstract telling you everything you need to know about this dataset.</gco:CharacterString>
</gmd:abstract>
<gmd:pointOfContact>
<gmd:CI_ResponsibleParty>
<gmd:individualName>
<gco:CharacterString>John Smith</gco:CharacterString>
</gmd:individualName>
<gmd:organisationName>
<gco:CharacterString>My organization</gco:CharacterString>
</gmd:organisationName>
<gmd:contactInfo>
<gmd:CI_Contact>
<gmd:address>
<gmd:CI_Address>
<gmd:electronicMailAddress>
<gco:CharacterString>nothing@example.com</gco:CharacterString>
</gmd:electronicMailAddress>
</gmd:CI_Address>
</gmd:address>
</gmd:CI_Contact>
</gmd:contactInfo>
<gmd:role>
<gmd:CI_RoleCode codeList="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/ML_gmxCodelists.xml#CI_RoleCode" codeListValue="publisher" />
</gmd:role>
</gmd:CI_ResponsibleParty>
</gmd:pointOfContact>
</gmd:MD_DataIdentification>
</gmd:identificationInfo>
</gmd:MD_Metadata>
The MD_Metadata_Type can be inserted into GeoNorge by using the API like this:
var transaction = _geonorge.MetadataInsert(simpleMetadata.GetMetadata());
The SimpleMetadata wrapper has methods for all fields that is required to be compliant with INSPIRE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Arkitektum.GIS.Lib.MetadataCSW (>= 2.0.0)
- Arkitektum.GIS.Lib.SerializeUtil (>= 1.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.4 | 91 | 2/5/2026 |
| 4.0.3 | 246 | 12/22/2025 |
| 4.0.2 | 394 | 10/21/2025 |
| 4.0.1 | 272 | 10/13/2025 |
| 4.0.0 | 299 | 10/6/2025 |
| 4.0.0-alpha3 | 213 | 9/10/2025 |
| 4.0.0-alpha2 | 205 | 9/8/2025 |
| 4.0.0-alpha1 | 374 | 6/11/2025 |
| 3.8.4 | 242 | 9/10/2025 |
| 3.8.3 | 331 | 7/16/2025 |
| 3.8.2 | 239 | 7/8/2025 |
| 3.8.1 | 393 | 4/15/2025 |
| 3.8.0 | 385 | 4/14/2025 |
| 3.7.9 | 305 | 3/14/2025 |
| 3.7.8 | 322 | 2/26/2025 |
| 3.7.7 | 335 | 2/12/2025 |
| 3.7.6 | 366 | 2/11/2025 |
| 3.7.5 | 348 | 2/10/2025 |
| 3.7.4 | 565 | 2/4/2025 |
| 3.7.3 | 225 | 2/4/2025 |
Fix csw nina endpoint