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