LINUX.ORG.RU

Как соединить несколько Placemark линиями

 , ,


0

1

Сабж. И чтобы в идеале не было отдельного Placemark на саму линию. Нашел способ через LineString, но этот способ как раз создает маркер и на линию. А хотелось бы без.

★★★★★

Последнее исправление: Dudraug (всего исправлений: 1)

Вот, не благодари.

<html>
<head>
<title>Leaflet example</title>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
<style type="text/css">
    body { margin: 0; }
    #map { height: 100%; width: 100%; }
</style>
</head>
<body>
<div id="map"></div>
<script>
    var map = L.map('map').setView([55.7317, 37.6035], 10);

    var placemarks = [
        [ 55.873, 37.6103, "Foo" ],
        [ 55.701, 37.4345, "Bar" ],
        [ 55.705, 37.7957, "Baz" ],
        [ 55.751, 37.6213, "End" ],
    ];

    L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors',
        maxZoom: 19
    }).addTo(map);

    for (var placemark in placemarks) {
        var marker = L.marker(placemarks[placemark]).bindPopup("I am <b>\"" + placemarks[placemark][2] + "\"</b>").addTo(map);

        if (placemark == 0) {
            marker.openPopup();
        }
    }

    var line = L.polyline(placemarks).addTo(map);
</script>
</body>
</html>
slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Заказчик хочет гугл и все.

Dudraug ★★★★★
() автор топика
Ответ на: комментарий от slovazap

Я ж вроде написал - kml. То есть мне пример xml нужен, по которому на гуглокарте движок рисует линии и точки. У меня есть база-лог с передвижениями и временем, мне надо сгенерить xml по этой истории. Но вроде зпказчика, placemark на линию устраивает. Так что походу и не надо уже.

Dudraug ★★★★★
() автор топика
8 марта 2016 г.
Ответ на: комментарий от slovazap

Мне понравился ваш пример, можно вас просить помощи? Делаю для себя и друзей карту и не как не магу понять как работает скрипт. Подскажите как нарезать карту. (у меня еще куча вопросов по мимо этого)

Делал через фото шоп для гугл, вроде просто но не то, много что не понравилась, а как резать для leaflet не понимаю.

Mirium
()
Ответ на: комментарий от slovazap

как в leaflet добавить свою карту у меня есть 25к тайлов моей карты. я не понимаю как их добавить в код. Все находится у меня на компе.

Mirium
()
Ответ на: комментарий от Mirium

Да хоть в мамке. Можете указать локальный путь через file:// и использовать локально, можете выложить куда-нибудь и указать нормальный http:// url.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Извините, я все равно не до понимаю вас. вот скрипт тот который я использовал для гугл. <div id=«map»><span class=«loading»>loading tiles...</span></div> <script type=«text/javascript» src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> <script>

/* * = PS_Bramus.GoogleMapsTileCutter Config * ---------------- */

var repeatOnXAxis = false; // Do we need to repeat the image on the X-axis? Most likely you'll want to set this to false

/* * Helper function which normalizes the coords so that tiles can repeat across the X-axis (horizontally) like the standard Google map tiles. * ---------------- */

function getNormalizedCoord(coord, zoom) { if (!repeatOnXAxis) return coord;

var y = coord.y; var x = coord.x;

// tile range in one direction range is dependent on zoom level // 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc var tileRange = 1 << zoom;

// don't repeat across Y-axis (vertically) if (y < 0 || y >= tileRange) { return null; }

// repeat across X-axis if (x < 0 || x >= tileRange) { x = (x % tileRange + tileRange) % tileRange; }

return { x: x, y: y };

}

/* * Main Core * ---------------- */

window.onload = function() {

// Define our custom map type var customMapType = new google.maps.ImageMapType({ getTileUrl: function(coord, zoom) { var normalizedCoord = getNormalizedCoord(coord, zoom); if(normalizedCoord && (normalizedCoord.x < Math.pow(2, zoom)) && (normalizedCoord.x > -1) && (normalizedCoord.y < Math.pow(2, zoom)) && (normalizedCoord.y > -1)) { return zoom + '/' + normalizedCoord.x + '/' + normalizedCoord.y + '.jpg'; } else { return 'empty.jpg'; } }, tileSize: new google.maps.Size(256, 256), maxZoom: 7, name: 'PS_Bramus.GoogleMapsTileCutter' });

// Basic options for our map var myOptions = { center: new google.maps.LatLng(0, 0), zoom: 2, minZoom: 0, streetViewControl: false, mapTypeControl: false, mapTypeControlOptions: { mapTypeIds: [«custom»] } };

// Init the map and hook our custom map type to it var map = new google.maps.Map(document.getElementById('map'), myOptions); map.mapTypes.set('custom', customMapType); map.setMapTypeId('custom');

} </script>

а какой нужен лиф

Mirium
()
Ответ на: комментарий от Mirium

Я ничем вам не могу помочь, если вы не знаете что такое url.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

можете выложить куда-нибудь и указать нормальный http:// url. У меня 25 тысяч тайлов все они в пнг. я повешусь им указывать урл

Да я не умею писать скрипты, я пользуюсь готовыми, но тут я попал в просак я незнаю как делать тайлы для лиф и пытаюсь воспользоваться тайлами для гугл.

Mirium
()
Ответ на: комментарий от Mirium

Спасибо нашол решение проблемы LeafletPano И с марками я разобрался спс

Mirium
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.