Я создал динамическую карту Yahoo, адрес может быть передан как значение скрытого поля, присутствующего на странице. Значение для скрытого поля может быть динамически передано в событии page_load. Я создал это на дочерней странице, инкапсулированной главной страницей в ASP.Net.
Перед началом работы пользователь должен сгенерировать идентификатор приложения для использования карт Yahoo, войдя в свой идентификатор Yahoo и перейдя по этой ссылке https://login.yahoo.com/config/login_verify2?.src=devnet&.done=http://developer.apps.yahoo.com/wsregapp/ и указав URL нашего веб-сайта.
Код для отображения карты Yahoo приведен ниже:
.карта {
высота: 400 пикселей;
ширина: 700 пикселей;
семейство шрифтов: Verdana;
Размер шрифта: 11px;
начертание шрифта: жирный;
}
<script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.8&appid=YourAPPID">
</script>
<script type="text/javascript">
// Capture the user mouse-click and expand the SmartWindow
function onSmartWinEvent() {
// Create a map object
var map = new YMap(document.getElementById('<%= map.ClientID %>'));
// Add a pan control
map.addPanControl();
// Add a slider zoom control
map.addZoomLong();
// Display the map centered on the address specified
map.drawZoomAndCenter(document.getElementById('<%= HiddenField1.ClientID %>').value, 3);
// Create a marker positioned at the address specified
var marker = new YMarker(document.getElementById('<%= HiddenField1.ClientID %>').value, createCustomMarkerImage());
// Add a label to the marker
//marker.addLabel("<blink>*</blink>");
// Call onSmartWinEvent when the user clicks on the marker
YEvent.Capture(marker, EventsList.MouseClick, onSmartWinEvent);
// Display the marker
map.addOverlay(marker);
var words = document.getElementById('<%= HiddenField1.ClientID %>').value;
marker.openSmartWindow(words);
// Add map type control
map.addTypeControl();
// Default map to satellite (YAHOO_MAP_REG) -- other opts: YAHOO_MAP_HYB,YAHOO_MAP_SAT
map.setMapType(YAHOO_MAP_REG);
}
function createCustomMarkerImage() {
var myImage = new YImage();
myImage.src = 'http://l.yimg.com/www.flickr.com/images/dot_splat.png';
myImage.size = new YSize(30, 31);
myImage.offsetSmartWindow = new YCoordPoint(15, 15);
return myImage;
}
</script>
<table width="100%" align="left">
<tr>
<td>
<body onload="onSmartWinEvent()">
<div id="map" class="map" runat="server">
</div>
<asp:HiddenField ID="HiddenField1" runat="server" />
</body>
</td>
</tr>
</table>
ПРИМЕЧАНИЕ: ограничение скорости: Yahoo! AJAX Maps API ограничен 50 000 запросов на IP в день. Проверьте эту ссылку
http://developer.yahoo.com/search/rate.html