Динамические кмл карты Google - PullRequest
0 голосов
/ 29 октября 2010

Я хочу создать приложение Google Maps с помощью kml, и я хочу создать файл kml динамически в зависимости от масштаба пользователя.

Что-то похожее на Google Планета Земля, но в картах Google (часть масштабирования)

Я пытался использовать markermanager и clusterterer, но у меня слишком много маркеров, и производительность на мобильных устройствах очень плохая, но с kml это не проблема, но у меня все маркеры отображаются одновременно.

Я пытался использовать NetworkLink в файле kml, но я не получаю никаких параметров, таких как масштабирование или границы (я использую php)

Я знаю, что это можно сделать с помощью JavaScript

new google.maps.KmlLayer('mykmlgenerator.php?zoom='+zoom);

, ноя хотел бы избежать этого, есть ли способ?

спасибо

Ответы [ 2 ]

2 голосов
/ 21 ноября 2013

Я попробовал это, только чтобы понять, что динамический KML с Google Maps неуклюж. Если это возможно, проще просто преобразовать свой KML в JSON и создать разметку на карте с помощью JavaScript API Карт Google (https://developers.google.com/maps/documentation/javascript/).

).
1 голос
/ 24 августа 2011

Во-первых, позвольте мне прояснить, что OpenLayers лучше, чем Google Maps, если вы хотите использовать динамический KML. Далее я хочу дать несколько простых JavaScript, которые мы будем использовать в OpenLayers. Вы должны попробовать их, так как он также использует библиотеку JavaScript.

Здесь я кратко покажу, как пишутся коды.

<html>
<head>
<title>Google Layer with KML file</title>
<link rel="stylesheet" href="http://openlayers.org/api/theme/default/style.css" type="text/css" />
<link rel="stylesheet" href="http://openlayers.org/dev/examples/style.css" type="text/css" />
<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAl9RMqSzhPUXAfeBCXOussRTQDbvAygy0cfGJr8dEMAYKf3RWNBQqP9mjKIsqTfmAlz5LOJ3Xpy5s4w'></script>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript">

var map;

function init() {
    // Create the map object
    map = new OpenLayers.Map('map');
    // Create a Google layer
    var gmap = new OpenLayers.Layer.Google(
        "Google Streets", // the default
        {numZoomLevels: 20}
    );
    // Add layer to map
    map.addLayer(gmap);

    //Adding KML file to map
    map.addLayer(new OpenLayers.Layer.GML("KML", "yourkml.kml", 
           {
            format: OpenLayers.Format.KML, 
            formatOptions: {
              extractStyles: true, 
              extractAttributes: true,
              maxDepth: 2
            }
           }));
    // Zoom to Kuala Lumpur, Malaysia
    map.setCenter(new OpenLayers.LonLat(101.686855,3.139003), 13);         
}
</script>
</head>
<body onload="init()">
<h1 id="title">Google Layer with KML file</h1>
<div id="map" style='width: 700px; height: 700px'></div>
</body>
</html>

Как видите, на карте есть маленькая оранжевая точка. Это файл KML, загруженный в Google Maps. И если вы хотите обновить их, проверьте эту ссылку

И последнее, но не менее важное, я надеюсь, что мой ответ не слишком поздно для вас.

...