Страница 1 из 2
Использование Google Maps для публикации точечных данных
Добавлено: 19 фев 2007, 21:58
Максим Дубинин
Обсуждение
"Использование Google Maps для публикации точечных данных и треков"
http://gis-lab.info/qa/google-web-points.html
Добавлено: 20 фев 2007, 09:16
Mitrich
моя копеечка в копилку
решение обратной задачи: оцифровка по ГугльМапу.
Используя инструмент на правой панели можно расставлять точки или соединять их в полилинии, а затем забирать координаты себе.
В API официально появился полигон, планирую его добавить.
http://mitrichtools.narod.ru/Metro/Metro_moscow.html
основные коды тут
http://mitrichtools.narod.ru/Metro/js/metro.js
p/s/ Сайт GIS-Lab очень помог стартануть.
Добавлено: 29 июн 2007, 20:42
Rider
Добрый день!
работал с googles maps вообчем то первый день...
ресурс очень хороший! за один день по сути все заработало!
Кроме одного! не получилось нарисовать трек, а именно соединить полученые маркеры линиями!
Причем и в примере это тоже не работает и вызывает ошибку.
map.addOverlay(new GPolyline(points)); - это однозначно ошибка
если написать так:
Код: Выделить всё
for (var i = 0; i < (numpoints + 1); i++) {
map.addOverlay(new GPolyline(points[i]));
}
ошибки нет, но и линиями не соединяет...
у кого то это работает?
Спасибо!
Добавлено: 29 июн 2007, 20:51
Максим Дубинин
map.addOverlay(new GPolyline(points)); - это однозначно ошибка
Почему? У нас это прекрасно работает.
http://gis-lab.info/projects/piskulka/piskulka1.html
Добавлено: 29 июн 2007, 22:35
Rider
Очень рад:) что это действитльно так!
вот собственно, что я на основе примера сделал. (я пробывал запускать и примерчик с описаний API , сыпятся ошибки)
Может скажете, где я не прав?
Код: Выделить всё
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
var icon = new GIcon();
icon.image = "gm.png";
icon.shadow = "gm.png";
icon.iconSize = new GSize(12, 20);
icon.shadowSize = new GSize(22, 20);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);
GDownloadUrl("data.xml", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
var numpoints = markers.length - 1;
var points = [];
for (var i = 0; i < markers.length; i++) {
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
points.push(point);
}
var points2 = points.slice();
points2.sort(function(p1, p2) {
return p1.lng() - p2.lng();
});
var west = points2[0].x;
var east = points2[numpoints].x;
points2.sort(function(p1, p2) {
return p1.lat() - p2.lat();
});
var north = points2[numpoints].y;
var south = points2[0].y;
var sw = new GLatLng(south,west);
var ne = new GLatLng(north,east);
var bounds = new GLatLngBounds(sw, ne);
var centerpoint = new GLatLng((north + south)/2, (east + west)/2);
var zoomlevel = map.getBoundsZoomLevel(bounds);
map.setCenter(centerpoint, zoomlevel, G_SATELLITE_MAP);
for (var i = 0; i < (numpoints + 1); i++) {
map.addOverlay(new GMarker(points[i], icon));
}
map.addOverlay(new GPolyline(points));
});
}
}
//]]>
</script>
Добавлено: 30 июн 2007, 01:02
Максим Дубинин
попробовал, все прекрасно работает и линии и точки показываются.
В каком браузере вы смотрите результат?
Добавлено: 30 июн 2007, 11:33
Rider
Internet Explorer 7
что -то чего то значит не поддерживает....
как жеж быть?
Добавлено: 30 июн 2007, 18:36
Максим Дубинин
Вот это сделали? Иначе линии в IE показывать не будут.
Код: Выделить всё
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
Если да, то:
а) какие ошибки выдает IE
б) пришлите ссылку посмотреть на то что вы делаете
Добавлено: 30 июн 2007, 20:22
Rider
строчку эту прописываю!
http://www.akom.aaanet.ru/guglxml.html -там код
// map.addOverlay(new GPolyline(points)); - эта строчка там закоментирована
И еще что странно, когда я её у себя открываю, маркеры отрисовываются, а с сайта почему то нет..., что то этого вот я не понял..
http://www.akom.aaanet.ru/guglxml1.html там строчка не закоментирована. Ошибка следующая: "Неожиданный вызов метода или обращение к свойству"
Добавлено: 02 июл 2007, 08:57
Максим Дубинин
Проблема однозначно в заголовке. Обратите внимание, что в Firefox обе страницы показываются как надо. Попробуйте убрать мусор из самого начала и поменять:
Код: Выделить всё
<!DOCTYPE >
<html xmlns="http://www.akom.aaanet.ru" xmlns:v="urn:schemas-microsoft-com:vml">
на
Код: Выделить всё
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
[/quote]
Добавлено: 02 июл 2007, 10:52
Rider
это поменял! на отрисовку маркеров и линий это никак не повлияло...
так жы вызывается ошибка!
И все таки почему, когда я открываю страничку у себя локально, маркеры отрисовываются, а когда с сайта, то нет.
Добавлено: 08 июл 2007, 14:55
lalex
Сейчас (как подсказал Митрич), появилась возможность напрямую загрузить kml в Google, не прибегая к программированию. Не надо GEarth, не надо свое API строить и мудрить с явой. Нужно лишь у себя на сайте разместить стандартный KML (можно его поднастроить по дизайну, если надо). Там же по ссылке есть способы наложения треков для других популярных картсистем.
http://lalex.nm.ru/files/gps2map.htm
Добавлено: 09 июл 2007, 08:41
Максим Дубинин
удобно в каких-то случаях, хотя это и раньше можно было делать, да и необходимости подстройки под себя окна браузера это не отменяет.
Добавлено: 09 июл 2007, 09:37
lalex
Разумеется. Но дополняет
Добавлено: 21 июл 2007, 23:48
Максим Дубинин
это поменял! на отрисовку маркеров и линий это никак не повлияло...
так жы вызывается ошибка!
см. мои предыдущий ответ про замену заголовка, последний пост удалил как дублирование.