商业用途需要Geoapify归属信息

问题描述 投票:0回答:1
  1. 我将在node.js项目中使用Geoapify反向地理编码API。他们在他们的网站中提到需要 Geoapify 归因。这对于 API 项目是强制性的吗?

我可以在商业项目中使用免费计划吗? 是的,我们不限制这一点。但是,您必须提供适当的 Geoapify 归属或我们网站的链接。如果您使用 style.json 初始化地图,则属性会自动添加到地图中。否则,正确的归因是“由Geoapify提供支持”

  1. 是否有任何替代解决方案可以在 npm 包中传递 lattitute 和 longtitue 时获取国家/地区代码?
node.js geolocation reverse-geocoding
1个回答
0
投票

您可以使用开放街道地图API

支持显示地图和反向地理定位。

反向地理 API 示例

https://nominatim.openstreetmap.org/reverse?format=json&lat=48.85341&lon=2.3488

我做了一个演示程序。 它通过node.js显示地图和反向地理数据

使用express的本地服务器

const express = require('express');
const axios = require('axios');
const app = express();
const port = 3000;

app.get('/map', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});


app.get('/reverse', async (req, res) => {
    const lat = req.query.lat;
    const lon = req.query.lon;

    if (!lat || !lon) {
        return res.status(400).send('Latitude and longitude are required');
    }

    try {
        const response = await axios.get(`https://nominatim.openstreetmap.org/reverse`, {
            params: {
                format: 'json',
                lat: lat,
                lon: lon
            }
        });
        res.json(response.data);
    } catch (error) {
        res.status(500).send('Error occurred while fetching data');
    }
});

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});

index.html

<!DOCTYPE html>
<html>
<head>
    <title>Map and Data Display</title>
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css"/>
    <style>
        #mapid, #data {
            float: left;
            width: 50%;
            height: 1024px;
        }
    </style>
</head>
<body>
    <div id="mapid"></div>
    <div id="data"><pre id="jsonData"></pre></div>
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script>
        // Function to get URL parameters
        function getURLParameter(name) {
            var params = new URLSearchParams(window.location.search);
            return params.get(name);
        }

        // Get latitude and longitude from URL parameters
        var lat = getURLParameter('lat') || 48.85341; // Default latitude
        var lon = getURLParameter('lon') || 2.3488;   // Default longitude

        // Initialize map with dynamic latitude and longitude
        var mymap = L.map('mapid').setView([lat, lon], 13);
        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
            maxZoom: 19,
            attribution: '© OpenStreetMap contributors'
        }).addTo(mymap);
        L.marker([lat, lon]).addTo(mymap);

        // Fetch and display data using dynamic latitude and longitude
        axios.get('/reverse', { params: { lat: lat, lon: lon } })
            .then(response => {
                document.getElementById('jsonData').textContent = JSON.stringify(response.data, null, 2);
            })
            .catch(error => {
                console.error(error);
                document.getElementById('jsonData').textContent = "Error: " + error.message;
            });
    </script>
</body>
</html>

输入经纬度参数访问URL

http://localhost:3000/map/?lat=48.85341&lon=2.3488

结果

它模仿 Geoapify 服务器。

© www.soinside.com 2019 - 2024. All rights reserved.