— Взаимопомощь при решении возникших у кого-либо затруднений.
— Любое другое общение, благодаря которому появится много сайтов с картами Яндекса, а API Яндекс.Карт станет лучше.
В клубе можно:
— Рассказывать о проектах, в которых используется API Яндекс.Карт.
— Искать разработчиков для реализации проектов с помощью API Яндекс.Карт.
Помните, клуб создан только для обсуждения API Яндекс.Карт, его достоинств и недостатков, а также методов решения тех или иных задач с ним связанных.
В клубе запрещено:
— Писать сообщения, противоречащие законодательству РФ.
— Материться.
— Размещать материалы эротического характера.
— Размещать рекламу.
В случае нарушения правил ваши записи могут быть удалены, а вы сами — исключены из клуба.
API предоставляет возможность создавать на любом сайте географический сервис использующий в качестве основы Яндекс.Карты.
Служба API Яндекс.Карт состоит из трёх частей.
Во-первых, это YMaps JavaScript API — программный интерфейс, при помощи которого можно разместить на сайте интерактивную карту и отобразить на ней любую необходимую информацию.
Во-вторых, это геокодер (geocoder, сервис геокодирования) — он ищет объекты по названиям и сообщает их географические координаты.
В третьих, язык YMapsML (Yandex Maps Markup Language) — это специальный XML-формат, при помощи которого можно отображать данные на карте.
Подробная документация, примеры и ответы на частые вопросы опубликованы на сайте api.yandex.ru/maps
Любые вопросы можно направлять на адрес службы поддержки support@api-maps.yandex.ru
Команда службы API Яндекс.Карт рада приветствовать вас в Официальном клубе разработчиков.
Открывая клуб мы хотим сделать максимально комфортным процесс создания сайтов на основе нашего API. Мы постараемся чтобы клуб стал местом где можно найти ответы на вопросы, увидеть уже кем-то сделанные интересные проекты и получить советы как от команды Яндекс.Карт, так и от других участников клуба. В ближайшее время будут опубликованы интересные советы от наших программистов, разъяснения тонкостей Пользовательского соглашения и подробные описания уже созданных проектов.
Для этого мы разработали максимально простые правила. Любой участник клуба имеет право опубликовать собственный пост, никакой премодерации.
И, конечно, мы будем рады ответить на любые вопросы, как технического так и организационного характера!
С желанием общаться,
команда API Яндекс.Карт
Город Пушкин знаменит своими дворцово-парковыми ансамблями. Теперь, благодаря использованию API Яндекс.Карт, прямо на сайте можно посмотреть карту города и наметить интересные места для посещений, посмотреть маршруты подъезда.
Кроме того, используя API Яндекс карт команда портала сделала гораздо более наглядным поиск нужной организации. Теперь, посетитель может не только найти адрес Центральной библиотеки им. Д.Н.Мамина-Сибиряка в городе Пушкин, но и увидеть её на карте.
Также на этом сайте вы сможете найти местные новости, разместить вакансии и объявления о поиске работы в Пушкинском районе Ленинградской области.
Чтож, настала наша очередь разрабатывать.
Все мы надеюсь понимаем, что разработка изначально начинается на "локале" и только потом выкладывается в интернет.
Вот тут и первая проблема - невозможно получить ключ для "компьютера", только для сайта.
Тоесть при попытке получить ключ для http://localhost или какихнить http://webserver получаем фигу, а если точнее то "Неправильно указан адрес сайта"
При этом ключи для localhost.ru генеряться нормально, но это не то имя которое бы хотелось
Как быть?
На портале Товар.Ру вы можете искать не только по организациям, но и по услугам, товарам, объявлениям. Географический охват сайта — 250 городов России.
Сайт очень большой, информации много и теперь, с Яндекс.Картами, им стало ещё удобнее пользоваться!
Здравствуйте,
Есть ли возможность с помощью API получить список всех городов, по каждому городу список улиц, и, наконец, по каждой улице получить список всех домов, что есть на карте?
Спасибо.
Хотелось бы использовать ваш сервис в своих сайтах, но... нету карт для моего города
Планируется ли в будущем сделать карту для г.Омска? Если да, то как скоро?
Для студентов МГУ (и не только студентов!) задача найти нужный корпус очень актуальна. Ежедневно помимо регулярных учебных мероприятий проводятся десятки других: конференции, олимпиады, вступительные экзамены... а корпусов университета больше 600.
Новости МГУ, с помощью API Яндекс.Карт, готовы помочь всем ищущим! Вот, например, расположение НИИ ядерной физики, а здесь расположено легендарное главное здание МГУ. Теперь ищите на карте!
Уверен, количество заблудившихся студентов станет меньше!
Работа с пробками будет в Api?
Статик Api будет?
...цвета текста на карте например?
И не совсем понятно как получить центр карты по адресу, не выводя ссылку геотаггинга?
Вобщем, как отцентровать карту при загрузке если не известна географическая координата но известен адрес?
P.S. Не пинать больно - впервые лезу в API а с JavaScript'оп вообще никогда не имел дела.
Планируется ли разработка не коммерческих компонентов для Flash и Flex как у Google?
На данном этапе создается огромное количество Flex приложений и утилит которым необходима поддержка полноценных карт. Сейчас приходится использовать Гугл, но для городов России он не особо подходит. Взять, к примеру, простенькую систему приема заказов и мониторинга их доставки на Flex/Air. Проложить маршрут по Картам google не представляется возможным. У Яндекса есть нужный функционал, но для решения данной задачи он не доступен т.к. есть только в JS исполнении. Очень обидно.
1.Где посмотреть весь набор графики (указатели, пиктограммы и пр.)
Ну вот
http://api.yandex.ru/imag
что там еще есть?
2. Хорошо бы иметь примерчик связки с mySQL
3. Спасибо.
Инструмент для поиска и определения координат:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm
<html style="height:100%; width:100%;" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Инструмент для определения координат.</title>
<script src="http://api-maps.yandex.ru
<script type="text/javascript">
var map;
var geoResult;
function init () {
map = new YMaps.Map(document.getElementById("YMapsID"));
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
map.addControl(new YMaps.TypeControl());
map.addControl(new YMaps.ToolBar());
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.MiniMap());
map.addControl(new YMaps.ScaleLine());
YMaps.Events.observe(map, map.Events.Click, function (mEvent) {
var myHtml = "Значение: " + mEvent.getGeoPoint() + " на масштабе " + map.getZoom();
map.openBalloon(mEvent.getGeoPoint(), myHtml);
});
}
function showAddress (value) {
map.removeOverlay(geoResult);
var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
if (this.length()) {
geoResult = this.get(0);
map.addOverlay(geoResult);
map.panTo(geoResult.getGeoPoint());
map.setBounds(geoResult.getBounds());
}else {
alert("Ничего не найдено")
}
});
}
</script>
</head>
<body onload="init();" style="height:90%; width:90%;">
<form action="#" onsubmit="showAddress(this.address.value);return false;">
<p>
<input type="text" id="address" style="width:725px;" value="Москва" />
<input type="submit" value="Искать" />
</p>
<div id="YMapsID" style="height:400px; width:800px;"></div>
</form>
</body>
</html>
use Geo::Yandex;
my $geo = new Geo::Yandex($key);
my @locations = $geo->location(address => 'Кремль');
Прикрутил карту на свой скромный сайтик: Карта Нижнего Новгорода
Спасибо огромное Яндексу за эту очень нужную возможность!
Функциональность и удобство на высшем уровне!
Только пока не смог вставить поиск по вашим примерам, форму показывает, а карту нет, будем еще тестить :)
Самое главное — координаты совпадают, т.е. никаких конверторов не нужно.
По поводу API все просто, я написал небольшой прокси, вот главная его часть:
HHMaps.Google = new function(){
if (typeof GMap2 == 'undefined'){
return;
}
// Point
GLatLng.prototype.getLng = function(){
return this.lng();
};
GLatLng.prototype.getLat = function(){
return this.lat();
};
GLatLng.prototype.distance = GLatLng.prototype.distanceFrom;
this.point = function(lng, lat){
return new GLatLng(lat, lng);
};
// Zoom
this.zoom = GSmallZoomControl;
// Map
GMap2.prototype.enableScrollZoom = GMap2.prototype.enableScrollWheelZoom;
this.map = GMap2;
// Marker
GMarker.prototype.setGeoPoint = GMarker.prototype.setLatLng;
GMarker.prototype.setBalloonContent = GMarker.prototype.bindInfoWindow;
GMarker.prototype.getGeoPoint = GMarker.prototype.getLatLng;
this.marker = GMarker;
// Geocoder
this.geocoder = function(){
var geocoder = new GClientGeocoder();
geocoder.setBaseCountryCode('ru');
return geocoder;
};
// Bounds
this.bounds = function(map, points){
var point = points.shift();
var bounds = new GLatLngBounds(point, point);
while((point = points.shift())){
bounds.extend(point);
}
this.getCenter = function(){
return bounds.getCenter();
};
this.getZoom = function(){
return map.getBoundsZoomLevel(bounds);
};
};
};
HHMaps.Yandex = new function(){
if (typeof YMaps == 'undefined'){
return;
}
YMaps.GeoPoint.prototype.getlng = function(){
return this.lng;
};
YMaps.GeoPoint.prototype.getlat = function(){
return this.lat;
};
this.point = YMaps.GeoPoint;
this.zoom = YMaps.Zoom;
YMaps.Map.prototype.enableContinuousZoom = jsx.Vars.NULL;
this.map = YMaps.Map;
this.marker = YMaps.Placemark;
this.geocoder = function(){
this.getLatLng = function(text, callback){
var geocoder = new YMaps.Geocoder(text);
YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
var point = this.length() ? this.get(0).getGeoPoint() : null;
if (!point){
return;
}
callback(new HHMaps.Yandex.point(point.getLng(), point.getLat()));
});
};
};
this.bounds = function(map, points){
var bounds = new YMaps.GeoCollectionBounds(points);
this.getCenter = function(){
return bounds.getCenter();
};
this.getZoom = function(){
return bounds.getMapZoom(map);
};
};
};
Тут только те методы, которые нужны мне, дописываете нужные вам.
Если вы пользуетесь гугловыми картами и хотите перейти на яндекс карты или вообще сделать выбор карт опциональным, то могу вас обрадовать это достаточно просто.
Самое главное — координаты совпадают, т.е. никаких конверторов не нужно.
По поводу API все просто, я написал небольшой прокси, вот главная его часть:HHMaps.Google = new function(){ if (typeof GMap2 == 'undefined'){ return; } // Point GLatLng.prototype.getLng = function(){ return this.lng(); }; GLatLng.prototype.getLat = function(){ return this.lat(); }; GLatLng.prototype.distance = GLatLng.prototype.distanceFrom; this.point = function(lng, lat){ return new GLatLng(lat, lng); }; // Zoom this.zoom = GSmallZoomControl; // Map GMap2.prototype.enableScrollZoom = GMap2.prototype.enableScrollWheelZoom; this.map = GMap2; // Marker GMarker.prototype.setGeoPoint = GMarker.prototype.setLatLng; GMarker.prototype.setBalloonContent = GMarker.prototype.bindInfoWindow; GMarker.prototype.getGeoPoint = GMarker.prototype.getLatLng; this.marker = GMarker; // Geocoder this.geocoder = function(){ var geocoder = new GClientGeocoder(); geocoder.setBaseCountryCode('ru'); return geocoder; }; // Bounds this.bounds = function(map, points){ var point = points.shift(); var bounds = new GLatLngBounds(point, point); while((point = points.shift())){ bounds.extend(point); } this.getCenter = function(){ return bounds.getCenter(); }; this.getZoom = function(){ return map.getBoundsZoomLevel(bounds); }; }; }; HHMaps.Yandex = new function(){ if (typeof YMaps == 'undefined'){ return; } YMaps.GeoPoint.prototype.getlng = function(){ return this.lng; }; YMaps.GeoPoint.prototype.getlat = function(){ return this.lat; }; this.point = YMaps.GeoPoint; this.zoom = YMaps.Zoom; YMaps.Map.prototype.enableContinuousZoom = jsx.Vars.NULL; this.map = YMaps.Map; this.marker = YMaps.Placemark; this.geocoder = function(){ this.getLatLng = function(text, callback){ var geocoder = new YMaps.Geocoder(text); YMaps.Events.observe(geocoder, geocoder.Events.Load, function () { var point = this.length() ? this.get(0).getGeoPoint() : null; if (!point){ return; } callback(new HHMaps.Yandex.point(point.getLng(), point.getLat())); }); }; }; this.bounds = function(map, points){ var bounds = new YMaps.GeoCollectionBounds(points); this.getCenter = function(){ return bounds.getCenter(); }; this.getZoom = function(){ return bounds.getMapZoom(map); }; }; };
Тут только те методы, которые нужны мне, дописываете нужные вам.
Сделал пробную карту
Точки расставлял ориентируясь на схему. При переключении на Спутник образуется разница со Схемой примерно 100 метров - мерял рулеткой.
Почему в ответ на запрос с ограничителями ll и spn я получаю список точек, которые выходят за границы заданной области?
Запрос:
my @locations = $geo->location(
address => 'тверская',
center => '37.618920,55.756994',
size => '0.552069,0.400552');
Ответ:
Россия, Москва, Замоскворецкая линия, метро Тверская (metro) 55.766263,37.605221 Россия, Москва, улица Тверская (street) 55.760910,37.610215
Россия, Москва, Тверская площадь (street) 55.761801,37.610080
Россия, Московская область, Сергиево-Посадский район, Сергиев Посад, улица Тверская (street) 56.339168,38.120431
Россия, Московская область, улица Тверская (street) 56.210843,36.970076
Россия, Краснодарский край, село Тверская (locality) 44.606003,39.614590
Россия, Санкт-Петербург, улица Тверская (street) 59.946892,30.384275
Россия, Санкт-Петербург, Колпино, улица Тверская (street) 59.738960,30.610516
Россия, Санкт-Петербург, поселок Петро-Славянка, улица Тверская (street) 59.799616,30.509805
Россия, Краснодарский край, Краснодар, улица Тверская (street) 45.115688,39.020849