Files
boc/iom/sdk/javascript/README.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

3.5 KiB

Landvex JavaScript SDK

Official JavaScript client for Landvex Urban Intelligence API.

Installation

NPM

npm install @landvex/sdk

CDN

<script src="https://cdn.landvex.com/sdk/v1/landvex.min.js"></script>

ES Modules

import { LandvexClient } from '@landvex/sdk';

Quick Start

import { LandvexClient } from '@landvex/sdk';

// Initialize client
const client = new LandvexClient('your-api-key');

// Check health
const health = await client.healthCheck();
console.log(`Status: ${health.status}`);

// List observations
const observations = await client.listObservations({
  lat: 59.3293,
  lng: 18.0686,
  radius: 1000,
  limit: 100,
});

observations.forEach(obs => {
  console.log(`${obs.id}: ${obs.type} (condition: ${obs.condition}/5)`);
});

// Get RGI
const rgi = await client.getRGI(59.3293, 18.0686);
console.log(`RGI: ${rgi.rgi}`);

// Get recommendations
const recommendations = await client.getRecommendations('municipality', 59.3293, 18.0686);
recommendations.recommendations.forEach(rec => {
  console.log(`- ${rec.recommendation} (impact: ${rec.expected_impact})`);
});

Browser Usage

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.landvex.com/sdk/v1/landvex.min.js"></script>
</head>
<body>
  <script>
    const client = new LandvexClient('your-api-key');
    
    async function loadData() {
      const observations = await client.listObservations({
        lat: 59.3293,
        lng: 18.0686,
      });
      console.log(`Found ${observations.length} observations`);
    }
    
    loadData();
  </script>
</body>
</html>

API Reference

Client

const client = new LandvexClient(apiKey, baseUrl);
Parameter Type Default Description
apiKey string required API authentication key
baseUrl string https://api.landvex.com/v1 API base URL

Observations

// List observations
const observations = await client.listObservations({
  lat: 59.3293,
  lng: 18.0686,
  radius: 1000,
  limit: 100,
  status: 'approved',
});

// Get single observation
const obs = await client.getObservation('OBS-001247');

// Create observation
const newObs = await client.createObservation({
  lat: 59.3293,
  lng: 18.0686,
  image_url: 'https://...',
  evidence: {...},
});

Missions

// List missions
const missions = await client.listMissions({ status: 'active' });

// Accept mission
await client.acceptMission('M001');

Indexes

// Reality Gap Index
const rgi = await client.getRGI(59.3293, 18.0686);

// Urban Morphology Index
const umi = await client.getUMI(59.3293, 18.0686);

Visual Geolocation

// Analyze image
const result = await client.analyzeImage('/path/to/image.jpg', 'optional-id');

// Batch analyze
const results = await client.batchAnalyze([
  { path: 'image1.jpg', id: '1' },
  { path: 'image2.jpg', id: '2' },
]);

Decisions

const recommendations = await client.getRecommendations('municipality', 59.3293, 18.0686);

Error Handling

try {
  const observations = await client.listObservations();
} catch (error) {
  if (error.message.includes('401')) {
    console.error('Invalid API key');
  } else if (error.message.includes('429')) {
    console.error('Rate limit exceeded');
  } else {
    console.error('Error:', error.message);
  }
}

Requirements

  • Modern browser with fetch API
  • Node.js 14+ (for server-side)

License

MIT