我可以在商业项目中使用免费计划吗? 是的,我们不限制这一点。但是,您必须提供适当的 Geoapify 归属或我们网站的链接。如果您使用 style.json 初始化地图,则属性会自动添加到地图中。否则,正确的归因是“由Geoapify提供支持”
您可以使用开放街道地图API
支持显示地图和反向地理定位。
反向地理 API 示例
https://nominatim.openstreetmap.org/reverse?format=json&lat=48.85341&lon=2.3488
我做了一个演示程序。 它通过node.js显示地图和反向地理数据
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}`);
});
<!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 服务器。