UrMap官方部落格

官方公告及地圖API文件

滑鼠點擊地圖上任意一處取得經緯度

1. 地圖綁上MouseDown事件, 每次點擊地圖後會回傳event及latlng兩個參數
2. 再透過lat()及lng()兩個函式分別取得緯度及經度

function init() {
	var map = new UMap(document.getElementById('map'));
	map.centerAndZoom(new ULatLng(25.035405, 121.520255), 9);
	// 地圖綁上MouseDown事件, 每次點擊地圖回傳Event及latlng兩個參數
	map.addListener('mousedown', function(e, latlng){
		var inputs = document.getElementsByTagName('INPUT');
		inputs[0].value = latlng.lat(); // 取得的緯度值丟入第一個input text
		inputs[1].value = latlng.lng(); // 取得的經度值丟入第二個input text
	});
}

觀看範例скачать программу для взлома паролей вкпрограмма продвижения сайтовбыстрые займы в екатеринбургеjugar gratis slots sin descargarQuicksilver gamesтуры в танзаниюмонтаж радиаторов отоплениямикрозаймы красноярск адресаgoogle оптимизация сайтаденьги в долг для студентовкак закрыть кредитную карту альфа банкапутевки май youtubeтур поездка танзани¤взять деньги в долг в калугевзять деньги в долг под залог недвижимостиденьги в долг срочно в орехово зуевогорящие путевки в болгарию из одессыаксессуары для ванной комнаты интернет магазинбесплатно раскрутить сайт в googleказан биолраскрутка сайта в воронежекаркасные дома дюплексvjkjxybwf ktxtybtчехол для iphone 3s купитьseo company near seattleэлитная косметика и парфюмерияПровода и питаниеmicro hdmiбизнес украинасоковыжималка купитьэл бритваmicro kameraBOPSнакидка Triumph

5 Comments »

隨需載入UrMap API (include on demand)

有時候有些網頁不需要在一開始就載入urmap api,有可能是使用者觸發某個動作才要顯示地圖,這時候用原本取得API的方式(document.write)就無法作到include on demand,因此我寫了一個小程式,經過壓縮之後只有1.6kb。接下來你只要呼叫 Read the rest of this entry »

2 Comments »

UMarker enableDraging

enableDraging 讓地標設為可拖拉,透過增加監聽函式addListener 榜定dragging 與 dragend事件,可以進階控制UMarker被拖動時的動作。


        function createMarker(point) {
          var marker = new UMarker(point, myIcon);
          marker.addListener('dragging', function(e, mkr, latlng) {
            //marker.openInfoWindow('Hello!');
            document.getElementById('log').innerHTML = '正在拖拉:'+latlng.toUrlString();
          });
          marker.addListener('dragend', function(e, mkr, latlng) {
            //marker.openInfoWindow('Hello!');
            document.getElementById('log').innerHTML = '拖拉結束:'+latlng.toUrlString();
          });
          return marker;
        }

        marker = createMarker(map.getCenter());
        map.addOverlay(marker);
        marker.enableDragging();

觀看範例: http://www.urmap.com/SearchEngine/api/documentation/enableDraging.htmlанонимайзер одноклассники бесплатно зайтинаполнение сайта контентом этодоговор краткосрочного займа скачатьfree casino java games downloadBig fish onlineотзывы о турах танзанияфитнес клуб зебра марьино отзывыгде взять денег в долг под процентыfrench translation to englishденьги в долг мегафон уралбизнес план кредитного потребительского кооперативаотдохнуть в африкекредитная карта газпромбанкамаршруты подъема спуска килиманджароэкспресс займы онлайн на карту сбербанкадавать деньги в долг бизнестур в польшу из харьковамагазин чешской посуды в спбenglish translation to afrikaansэлектрические полотенцесушители спбпосуда оптом от производителя москвадома и проектыпосле лечения трихомониазаумные часы nexusпрограмма для обучения английскомупоисковое продвижение яндексЗащитный кожух для фотоловушек Reconyxpebblesngorongoroтур чехия австрияtent netантирадар инспекторсоздание и продвижение сайтов в москвепокер фрироллы

No Comments »

UMarker triggerEvent

triggerEvent可以讓你直接觸發marker上自定義的監聽事件,通常會做一個地標列表列出所有的marker,當點選列表時觸發原本榜定在marker上的事件。

        var map = new UMap(document.getElementById('map'));
        map.setControlType(U_FULL_CONTROL);
        map.centerAndZoom(new ULatLng(25.035405, 121.520255), 9);

        // 函式:用來產生一個會顯示指定號碼在訊息視窗中的地標
        function createMarker(point, number) {
          var marker = new UMarker(point);
          marker.setMouseonInfo('label:'+number, 'desc:'+number);
          var html = '地標 #<b>' + number + '';
          marker.addListener('click', function() {
            marker.openInfoWindow(html);
          });
          return marker;
        }

        // 加入十個隨機產生的地標
        var bounds = map.getBounds();
        var width = bounds.getNorthEast().lng() - bounds.getSouthWest().lng();
        var height = bounds.getNorthEast().lat() - bounds.getSouthWest().lat();
        for (var i = 0; i &lt; 10; i++) {
          var point = new ULatLng(bounds.getSouthWest().lat() + height * Math.random(), bounds.getSouthWest().lng() + width * Math.random());
          var marker = createMarker(point, i+1);
          map.addOverlay(marker);

          var a = document.createElement(&#039;a&#039;);
          a.href=&#039;#&#039;;
          a.innerHTML = marker.label;
          a.onclick = (function(m){
          	return function(){
          		m.triggerEvent(&#039;click&#039;);
          	};
          })(marker);
          document.getElementById(&#039;list&#039;).appendChild(a);
          document.getElementById(&#039;list&#039;).appendChild(document.createTextNode(&#039; &#039;));

觀看範例: http://www.urmap.com/SearchEngine/api/documentation/marker_triggerEvent.htmlкниги по хакерству скачатьоптимизация сайта поисковикзаймы онлайн на карту по всей россииonline casino usa players acceptedMecca gamesкилиманджаро подьемзанятия боксом для девушекденьги в долг курскпиар кампания на примере отеляпоездка на озера натрон в танзаниипоход в килиманджароальфа банк кредитная карта какой процентдам деньги в долг под проценты владикавказмачамекредитные карты банк возрождениебыстрый займ до зарплатысправка о несудимости в украинебанковский конфискат авто украинаenglish danish translatorкак раскрутить онлайн казиностоимость сборки каркасного доматехнология строительства домастатистика поисковых запросовнаушники жабракуплю видеорегистраторAcme 4k VR03go pro hero 3 plus silverWQ-103hail protection car cover suppliersкупити генераторкупить швейную машинку в интернет магазинецена на доступную экшн-камеругде можно цена на медицинскую справкуLemosho 10days

No Comments »

如何更改地標mouse on訊息視窗的style?

CSS

/** MouseOnDiv 區塊 **/
.UMarkerMouseOnDiv{
	position: absolute;
	top:0px;
	width:120px;
	z-index:1;
	font:12px tahoma;
	display:none;
	overflow:hidden;
	opacity:0.8;
	filter:alpha(opacity:80);
	border: 1px solid #0099FF;
}
/** MouseOnDiv 標題 **/
.UMarkerMouseOnDivName{
	font-size: 13px;
	font-weight: bold;
	color: #FFFFFF;
	background-image: url(UMarkerTop.gif);
	background-repeat: repeat-x;
	background-position: left bottom;
	background-color: #0f69fe;
	border: 1px solid #FFFFFF;
	padding-top: 1px;
	padding-right: 3px;
	padding-bottom: 5px;
	padding-left: 3px;
}
/** MouseOnDiv 內容 **/
.UMarkerMouseOnDivDesc{
	padding:1px 10px;
	background-color:#FFFFFF;
}

взломать e mailчехлы для айфона 5 sоформить кредитную карту онлайн для студентовcasino online roulette cheatsEnglish blackjackсколько стоит сафари в африкеледи фитнес марьиновозьму деньги в долг красноярскповышение лояльности клиентов что этоngorongoroальфа банк оплата кредита через картудолина реки серенгети одно из величайших местсафари стоимость altezza travelденьги в долг альметьевскнационален парк килиманджаровозьму деньги в долг улан удэсоциальная льгота в украине 2015держатель для винагусятница биолсписать долг по кредитукаркасные дома ирутскквадрокспричины сахарного диабета 2 типачехол для iphone 4/4sдухи ламбре ценаоптимизация под гуглязыковые школы в сшаHankook Ventus AS RH07accessoire de sexпродажа домов в городнеобразец справки от врача в свободной формесвязной видеорегистраторохранная система билайнкисть для растушевки теней

No Comments »

如果我想讓使用者點選「板橋市」、「新店市」、「信義區」、「士林區」就會帶到該地方 並且縮放到合適的level,我該怎麼做?

觀看範例

CSS

#map {
	width: 500px;
	height: 400px;
	border: 1px solid black;
}
select.select-field {
	font-size: 12px;
	color: #333;
	border: 1px solid #333;
	margin: 0px 0px 10px 0px;
	padding: 2px;
}

HTML


		板橋市
		新店市
		信義區
		士林區

	<div id="map"></div>

查詢某個地點的經緯度
按下滑鼠右鍵,出現右鍵選單,選擇查詢經緯度,拷貝經緯度,如下圖。
查詢經緯度

Javascript
// 宣告一陣列儲存矩形範圍西南角及東北角的經緯度
var locations = [{SWLat:24.955531122809986,SWLng:121.35407679576154,
				NELat:25.066144696138256,NELng:121.55485406951051},
				{SWLat:24.88251262907,SWLng:121.434947311581,
				NELat:24.9921441648787,NELng:121.6375724412087},
				{SWLat:24.978025822536974,SWLng:121.47252509421136,
				NELat:25.087885910040874,NELng:121.67629414994528},
				{SWLat:25.08071599866579,SWLng:121.42961783656162,
				NELat:25.189774015918026,NELng:121.63129496303368}];
var map;

function getSelectedIndex() {
	var options = document.getElementsByTagName('option');
	var total = options.length;
	for (var i=0; i&lt;total; i++) {
		if (options[i].selected) {
			return options[i].value;
		}
	}
}

function init() {
	map = new UMap(document.getElementById(&#039;map&#039;));
	loadMap();
}

function loadMap() {
	var selectedIndex = getSelectedIndex();
	// 建立一個經緯度的矩形範圍
	var bounds = new UBounds(new ULatLng(locations[selectedIndex].SWLat, locations[selectedIndex].SWLng),
				new ULatLng(locations[selectedIndex].NELat, locations[selectedIndex].NELng));
	// 取得這個矩形範圍的中心點坐標(經緯度)
	var centerLatLng = bounds.getCenter();
	// 取得能完全包含傳入的矩形範圍的zoomLevel 值
	var zoomLevel = map.getBoundsZoomLevel(bounds) + 2;
	// 將地圖的中心點移動至指定的經緯度坐標並縮放到指定的zoomLevel
	map.centerAndZoom(new ULatLng(centerLatLng.lat(), centerLatLng.lng()), zoomLevel);
}

программа для накрутки сердечекподдержка сайта цены киевкредиты малому бизнесу с нуля втбsvenska natcasinonTop gambling sites10 лучших сафари парков африкихочу похудеть люблинокредитная карта по паспортуtranslation from swedish to englishдельта банк кредитная карта номер 1 отзывытанзани¤ какие прививкизаявление анкета на получение ипотечного кредита сбербанктрекинг на килиманджароденьги в долг на теле2 на баланстуры на сафари кени¤ танзани¤возьму деньги в долг улан удэработа в польше харьковинтернет магазин аксессуаров для кухнибесплатная раскрутка сайтаbusiness translation dutchсип дома спбгде отдыхать в апреле-маеразработка одностраничных сайтовпоходы в горыоптимизация и правильное продвижение сайтадухи шлессердухи купить почтойбатарейки аккумуляторымонтаж воротЧехол солнцезащитный Nissan для автосправки от гинекологамедицинская форма 086seoкупить тормозные диски ваз 2110

No Comments »

如何讓右鍵選單跳出?而且選單中其中一個按鈕是新增marker?

觀看範例

CSS

#map {
	width: 500px;
	height: 400px;
	border: 1px solid black;
}
ul#context-menu {
	font-size: 12px;
	list-style: none;
	border-top: 1px solid #333;
	border-left: 1px solid #333;
	border-right: 1px solid #333;
	display: none;
	margin: 0px;
	position: absolute;
}
ul#context-menu li.tab {
	width: 80px;
	background-color: #ccc;
	color: #333;
	text-align: center;
	line-height: 1.6;
	border-bottom: 1px solid #333;
	margin: 0px 0px 0px -40px;
	#margin: 0px;
	display: block;
	cursor: pointer;
}
ul#context-menu li.tab:hover {
	background-color: #333;
	color: #fff;
}

HTML


    <div id="map"></div>
    <ul id="context-menu">
        <li class="tab">Add Marker</li>
        <li class="tab">Close</li>
    </ul>

產生地圖及bind a contextmenu event into the map

var map;
var MouseObj = {};
// 自訂 the icon of the marker
var icon = new UIcon();
icon.image = 'http://maps.google.com/intl/en_us/mapfiles/cb/man_arrow-0.png';
icon.iconWidth = 49;
icon.iconHeight = 52;
icon.iconAnchor = new UPoint(32, 32);

function loadMap() {
	var mapDiv = document.getElementById('map');
	map = new UMap(mapDiv);
	var centerLatLng = new ULatLng(25.035405, 121.520255);
	map.centerAndZoom(centerLatLng, 8);
	// Bind a contextmenu event into the div map to show the context menu.
	addEvent(mapDiv, 'contextmenu', showContextMenu);
}

function addEvent(obj, event, fn) {
	if (obj.addEventListener) { // For Firefox, Opera, Safari
		obj.addEventListener(event, fn, false);
	} else if (obj.attachEvent) { // For IE
		obj.attachEvent('on'+event, fn);
	}
}

自訂右鍵選單及設定選單位置

/********************
隱藏預設的右鍵選單
********************/
function cancelDefault(e) {
	// For IE
	if(window.event)
		window.event.returnValue = false;
	// For Firefox
	if(e &amp;amp;&amp;amp; e.preventDefault)
		e.preventDefault();
}

/*********
選單位置
*********/
function getMousePos(e) {
	if (e.pageX || e.pageY){ // this doesn't work on IE6!! (works on FF,Moz,Opera7)
		MouseObj.x = e.pageX ;
		MouseObj.y = e.pageY;
	} else if (e.clientX || e.clientY){
		MouseObj.x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		MouseObj.y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
}

/*********
右鍵選單
*********/
function showContextMenu(e) {
	var ev = e || window.event;
	cancelDefault(ev);
	getMousePos(ev);
	var contextMenu = document.getElementById('context-menu');
	contextMenu.style.display = 'block';
	contextMenu.style.left = MouseObj.x + 'px';
	contextMenu.style.top = MouseObj.y + 'px';
}

選單按紐

/*********
新增Marker
*********/
function addMarker() {
	var latlngObj = map.transformContainerCoordinatesToLatLng(new UPoint(MouseObj.x, MouseObj.y));
	var marker = new UMarker(new ULatLng(latlngObj.lat(), latlngObj.lng()), icon);
	map.addOverlay(marker);
	closeContextMenu();
}

/*********
關閉選單
*********/
function closeContextMenu() {
	var contextMenu = document.getElementById('context-menu');
	contextMenu.style.display = 'none';
}

программа взлома паролей вай фай для андроидseo анализбизнес кредит москваdescargar chatroulette gratis para androidWilliam hill login mobileтарангире национальный паркtrx люблинооформить заявку на кредитную карту восточный экспресстовары для интерьерадам деньги в долг тольяттиальтеза тревелотпуск с восхождением на килиманджарокредитка дельта банк заказатьдельта банк кредитная карта процентыкредитные карты без справок и проверокмаршрут на гору килиманджаропрограмма для подделки печатейсклад посуды москваищу адвокатrussian google translateкаркасные дома технология изготовленияпрививки от желтой лихорадкиглисты у человека видеогорящий путевка в турцию из харьковаHunterhelpliquid image model 727КуплюNEP-K109micсковорода для паэльи купить в москвекупить дымоходмед справки спбhero3 white edition манок на 224 голосаазартные игры бесплатно

No Comments »

我不喜歡預設的marker mouseover的style,可以改嗎

A:請自己綁定mouseover事件,利用UMarker.getPoint()來取得經緯度座標,並設定marker info的位置。

點我觀看範例

var map;
function init() {
	map = new UMap(document.getElementById('map'));
	map.centerAndZoom(new ULatLng(25.035405, 121.520255), 9);
	var mapDiv = document.getElementById('map');

	var marker = new UMarker(map.getCenter());
	bindMaukerMouseover(marker, 'this is a string!');
	map.addOverlay(marker);

	var marker2 = new UMarker(new ULatLng(25.033405, 121.523255));
	bindMaukerMouseover(marker2, 'this is another string!');
	map.addOverlay(marker2);

	//My marker info Div
	var myMarkerInfoDiv = document.createElement('div');
	myMarkerInfoDiv.id = 'myMarkerInfoDiv';
	myMarkerInfoDiv.style.cssText = 'width:200px;border:1px solid blue;display:none;position:absolute;background-color:#CCC;';
	document.getElementById('map').appendChild(myMarkerInfoDiv);

}

榜定marker的mouseover事件

function bindMaukerMouseover(mkr, msg){
	mkr.addListener('mouseover', function(){
		var latlng = mkr.getPoint();//取得該座標的經緯度
		var point = map.transformLatLngToContainerCoordinates(latlng);//將經緯度轉成螢幕座標(相對於mapDiv左上角)
		var exX = 15;//x偏差量
		var exY = 10;//y偏差量
		document.getElementById('myMarkerInfoDiv').style.left = (point.x + exX) + 'px';
		document.getElementById('myMarkerInfoDiv').style.top = (point.y + exY) + 'px';
		document.getElementById('myMarkerInfoDiv').style.display = 'block';
		document.getElementById('myMarkerInfoDiv').innerHTML = msg;
	});
	mkr.addListener('mouseout', function(){
		document.getElementById('myMarkerInfoDiv').style.display = 'none';
	});
}

взломать майл ручехол iphone 5s caseвзять электронные деньги в долгmaquinas de casino gratis las mas nuevasOnline unblocked gamesтуризм африкарадиаторы отопления в москведеньги в кредит под залог недвижимости сбербанкpr продвижение бренда формированиипутевка в африку цена сафари на 10 днейпарк нгоронгороафрика тур путевка сафарипутешествие в кению и танзаниюотдых в россии май 2015ngorongoroпутевки май youtubeтуры в тайланд в 2015 годукупить чугунную гусятницапосуда алюминиеваяуслуги продвижение бренда туризмепостроить дом из степпанелейтанзания веснаметоды лечения простатита в домашних условияхраскрутка сайтовPorscheuk english courseчем отличается парфюмированная вода от духовRosava Quartum S49Ташкент способы укладки ламинатасветильник модульный подвеснойпогода в варне в сентябресайты googlehome for sale in Miamiреклама

No Comments »