Доброго времени!
Идея такая, что, зарегиный юзер открывает тот тип карты (Схема, Спутник, Гибрид) который сохранил, Сейчас я сделал так:
var x = m.getType();
var s = x.getName();
switch( s ){
case "Схема":this.yaty = 'YMaps.MapType.MAP';break;
case "Спутник":this.yaty = 'YMaps.MapType.SATELLITE';break;
case "Гибрид":this.yaty = 'YMaps.MapType.HYBRID';break;
}
this.ty = this.yaty;
}
.....
this.map = new YMaps.Map( this.canvas );
this.map.setCenter( new YMaps.GeoPoint(this.lon, this.lat), this.zoom, eval(this.ty) );
this.yaty = this.ty;
...
YMaps.Events.observe( this.map, this.map.Events.TypeChange, YaChange, this );
Тупо, конечно, но работает...пока... у меня.
С гуглом вышло проще, и на мой взгляд более стабильно:
function GooChangeMapId(){
var s = mapper.map.getMapTypeId();
mapper.ty = "google.maps.MapTypeId."+s.toUpperCase();
mapper.gooty = mapper.ty;
}
,,,,,
var mapCenter = new google.maps.LatLng( this.lat, this.lon );
var mapOptions = {
zoom: this.zoom,
center: mapCenter,
mapTypeId: eval(this.ty)
}
this.gooty = this.ty;
this.map = new google.maps.Map( this.canvas, mapOptions );
,,,,
google.maps.event.addListener(this.map, 'maptypeid_changed', GooChangeMapId );
Моя реализация Яндекса меня тревожит: кто сказал что на др компе имена карт не изменятся и останусь я в неудел....
Есть ли более стабильный вариант?
Спасибо