摘要:項(xiàng)目要求左右兩張地圖能夠在鼠標(biāo)懸浮的時(shí)候高亮部分聯(lián)動(dòng),曾嘗試了不好使,所以自己寫了這段代碼。遇見的坑使用引發(fā),會(huì)發(fā)現(xiàn)只能顯示很短的時(shí)間,所以我鼠標(biāo)移入地圖時(shí),給另一個(gè)地圖設(shè)置和。而獲取的時(shí)候會(huì)成為數(shù)組,也許是為了滿足多個(gè)的需求。
項(xiàng)目要求左右兩張地圖能夠在鼠標(biāo)懸浮的時(shí)候高亮部分聯(lián)動(dòng),曾嘗試了connect不好使,所以自己寫了這段代碼。代碼思路為:
鼠標(biāo)移入地圖時(shí),另一側(cè)的地圖根據(jù)鼠標(biāo)懸浮獲取到的區(qū)域name使該區(qū)域高亮;
鼠標(biāo)移入地圖時(shí),根據(jù)鼠標(biāo)在地圖的坐標(biāo)位置,使另一側(cè)的地圖tooltip懸浮于獲取的坐標(biāo)位置,保證兩張地圖的tooltip的位置相同。
遇見的坑:
使用dispatchAction引發(fā)showTip,會(huì)發(fā)現(xiàn)tooltip只能顯示很短的時(shí)間,所以我鼠標(biāo)移入地圖時(shí),給另一個(gè)地圖設(shè)置tooltip[0].alwaysShowContent=true和tooltip[0].triggerOn="none"。官網(wǎng)要求使用dispatchAction引發(fā)showTip需要設(shè)置triggerOn="none",但是我試了有沒有都行,有alwaysShowContent=true就行;
在設(shè)置tooltip的時(shí)候,使用的是對(duì)象。而獲取的時(shí)候tooltip會(huì)成為數(shù)組,也許echarts是為了滿足多個(gè)tooltip的需求。
函數(shù)只要傳進(jìn)去echarts實(shí)例就行,代碼如下:
//前面的代碼省略直接調(diào)用,傳入echarts實(shí)例對(duì)象 connectMap(chart1,chart2); function connectMap(chart1,chart2){ //當(dāng)鼠標(biāo)移入左側(cè)的地圖上 chart1.on("mouseover",function(target){ var option=chart2.getOption(); option.tooltip[0].alwaysShowContent=true; option.tooltip[0].triggerOn="none"; chart2.setOption(option,true); chart2.dispatchAction({ type:"downplay", seriesName:"rightmap" }) chart2.dispatchAction({ type:"highlight", name:target.name, }) }) chart1.on("mousemove",function(target){ chart2.dispatchAction({ type:"showTip", name:target.name, x:target.event.offsetX, y:target.event.offsetY }) }) chart1.on("mouseout",function(){ var option=chart2.getOption(); option.tooltip[0].alwaysShowContent=false; option.tooltip[0].triggerOn="mousemove"; chart2.setOption(option,true); chart2.dispatchAction({ type:"hideTip" }) }) //當(dāng)鼠標(biāo)移到右邊的地圖 chart2.on("mouseover",function(target){ var option=chart1.getOption(); option.tooltip[0].alwaysShowContent=true; option.tooltip[0].triggerOn="none"; chart1.setOption(option,true); chart1.dispatchAction({ type:"downplay", seriesName:"rightmap" }) chart1.dispatchAction({ type:"highlight", name:target.name, }) }) chart2.on("mousemove",function(target){ chart1.dispatchAction({ type:"showTip", name:target.name, x:target.event.offsetX, y:target.event.offsetY }) }) chart2.on("mouseout",function(){ var option=chart1.getOption(); option.tooltip[0].alwaysShowContent=false; option.tooltip[0].triggerOn="mousemove"; chart1.setOption(option,true); chart1.dispatchAction({ type:"hideTip" }) }) }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/90385.html
摘要:不建議底圖選擇中存在兩種不同坐標(biāo)體系,如下圖坐標(biāo)存在明顯的偏差,火星坐標(biāo)在采用坐標(biāo)系的地圖上位置偏上彩色中國(guó)天地圖全球衛(wèi)星地圖例如我們使用的類進(jìn)行查找,返回的數(shù)據(jù)都是國(guó)際坐標(biāo),因此必須進(jìn)行偏差糾正。 ArcGIS for javascript開發(fā)心得 本次實(shí)例中采用ArcGIS for javascript3.24版本,由于版本3與4在API等存在較大區(qū)別,就不一一列舉,詳細(xì)區(qū)別看官方...
摘要:需求展示西安市各區(qū)縣的地圖,點(diǎn)擊各區(qū)縣下鉆到各鄉(xiāng)鎮(zhèn)街道,只能內(nèi)網(wǎng)環(huán)境使用,不可用通過百度高德地圖來實(shí)現(xiàn)。利用展示自定義的地圖關(guān)于具體如何導(dǎo)入格式數(shù)據(jù)到的方法,可以參考官方示例。 需求 展示西安市各區(qū)縣的地圖,點(diǎn)擊各區(qū)縣下鉆到各鄉(xiāng)鎮(zhèn)/街道,只能內(nèi)網(wǎng)環(huán)境使用,不可用通過百度/高德地圖來實(shí)現(xiàn)。 解決 利用地圖數(shù)據(jù)生成區(qū)域的geojson 網(wǎng)絡(luò)上大部分地圖數(shù)據(jù)只是到省市,最多到區(qū)縣,再往下的數(shù)...
摘要:最早我是想通過方法去改變選中的省份,但是沒有起作用,如果你知道這個(gè)方法怎么實(shí)現(xiàn),麻煩你可以告訴我。指定圖表的配置項(xiàng)和數(shù)據(jù)中國(guó)默認(rèn)高亮安徽省安徽使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。 最早我是想通過dispatchAction方法去改變選中的省份,但是沒有起作用,如果你知道這個(gè)方法怎么實(shí)現(xiàn),麻煩你可以告訴我。我實(shí)現(xiàn)的方法是另外一種。 dispatchAction({ type: ge...
閱讀 1378·2021-11-24 09:38
閱讀 2086·2021-09-22 15:17
閱讀 2340·2021-09-04 16:41
閱讀 3452·2019-08-30 15:56
閱讀 3511·2019-08-29 17:19
閱讀 1939·2019-08-28 18:09
閱讀 1249·2019-08-26 13:35
閱讀 1711·2019-08-23 17:52