как подключится к openstreetmap через API?

126
01 декабря 2019, 02:00

как подключится к openstreetmap через API? я реально не могу найти нормальной инфы. Мне надо подключится и поставить гео точки

<?
function get_saved_locations(){
    $con=mysqli_connect ("localhost", 'root', '','locations');
    if (!$con) {
        die('Not connected : ' . mysqli_connect_error());
    }
    $sqldata = mysqli_query($con,"select lng,lat from locations ");
    $rows = array();
    while($r = mysqli_fetch_assoc($sqldata)) {
        $rows[] = $r;
    }
    $indexed = array_map('array_values', $rows);
    //  $array = array_filter($indexed);
    echo json_encode($indexed);
    if (!$rows) {
        return null;
    }
}
?>
  <script>

var map = L.map( 'map', {
  center: [57.08231,25.24116],
  minZoom: 1.5,
  zoom: 7
})
L.tileLayer( 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',
  subdomains: ['a', 'b', 'c']
}).addTo( map )
var myURL = jQuery( 'script[src$="leaf-demo.js"]' ).attr( 'src' ).replace( 'leaf-demo.js', '' )
var myIcon = L.icon({
  iconUrl: myURL + 'images/pin24.png',
  iconRetinaUrl: myURL + 'images/pin48.png',
  iconSize: [29, 24],
  iconAnchor: [9, 21],
  popupAnchor: [0, -14]
})
for ( var i=0; i < markers.length; ++i ){
L.marker( [markers[i].lat, markers[i].lng], {icon: myIcon} )
.addTo( map );
</script>

Это всё работает , но это вывод для JSON, а мне надо из базы данных MYSQL, там всего 2 колонки lat lng

<?
   $con=mysqli_connect ("localhost", 'root', '','locations');
    if (!$con) {
        die('Not connected : ' . mysqli_connect_error());
    }
    // update location with location_status if admin location_status.
    $sqldata = mysqli_query($con,"select lng,lat from locations ");
    $rows = array();
    while($r = mysqli_fetch_assoc($sqldata)) {
        $rows[] = $r;
    }
?>
var tempArray = JSON.parse("[<?echo $r?>]");
Answer 1

OSM это не движок, это данные(тайлы).

Используйте например leaflet, это карты 2д, с достаточно простым API, вот пример OSM:

var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmLayer = new L.TileLayer(osmUrl, { 
    maxZoom: 18 
}); 
var pt = new L.LatLng(60, 30.3); 
var map = new L.Map('map', { 
    center: pt, 
    zoom: 12, 
    layers: [osmLayer] 
}); 
L.marker(pt).addTo(map)
.bindPopup('Кто тут ??')
.openPopup();
body { 
    margin: 0; 
    overflow: hidden; 
} 
#map { 
    position: fixed; 
    width: 100%; 
    height: 100%;
}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css"/> 
<script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"></script> 
<div id="map"></div>

другой мой пост с поверхностным сравнением разных Web карт и глобусов

READ ALSO
Не находит класс Middleware

Не находит класс Middleware

Выбрасывает ошибку Class App\Http\App\Http\Middleware\RedirectIfNotAAdmin does not existС чем может быть связано?

152
PHP Оборвать соединение с сервером

PHP Оборвать соединение с сервером

Не могу понять как сделать функцию для моментального разрыва соединения с серверомЯ читал что нужно использовать ob_start(); ob_end_flush(); flush(); и т

110
Как отправить DTMF из сервера Asterisk в браузер?

Как отправить DTMF из сервера Asterisk в браузер?

Я создал функционал, чтобы звонить из браузера на указанный номер телефонаИ в dial plan мне нужно взять из клиента DTMF и обратно вернуть браузеру...

100
Как передать массив из php в js?

Как передать массив из php в js?

мне нужно , чтоб появлялись точки на карте , использую строчку (ниже) то всё ок , а точек очень много и все хранятся в бд и я не могу результаты...

156